it-swarm.dev

vizuálně třídí řazení "vlastních typů příspěvků" pro koncové uživatele

Nyní s těmito typy vlastních příspěvků a dalšími kousky obsahu, které nemusí být nutně organizovány chronologicky podle data, například: klient má 100 triček jako typ vlastního příspěvku typu "SHIRT" a chce nastavit pořadí zobrazení .

Jaký přístup navrhujete, aby se editor/admin stránky TŘÍDILI?

8
Amit
1
Drew Gourley

můžete filtrovat o taxonomii

        // to filter by category
    function restrict_manage_posts() {
        global $typenow;

        if ( FB_CPT_POST_TYPE_1 == $typenow ) {
            $args = array('orderby' => 'count', 'hide_empty' => true);
            echo $this->get_taxonomy_html_select(FB_CPT_TAXONOMY_TYPE_1, $args);
        }
    }

    function get_taxonomy_html_select($taxonomy_name, $args) {

        $taxonomy = get_taxonomy($taxonomy_name);
        $terms = get_terms($taxonomy_name, $args);
        $label = __( 'Show all ' . $taxonomy->label, FB_CPT_TEXTDOMAIN );
        $html = array();
        $html[] = '<select style="min-width:155px;" id="' . $taxonomy_name . '" name="' . $taxonomy_name . '" class="postform">';
        $html[] = '<option value="0">' . $label . '</option>';
        if ( isset($_GET[$taxonomy_name]) )
            $this_term = $_GET[$taxonomy_name];
        else
            $this_term = '';
        foreach($terms as $term) {
            $default = ( $this_term == $term->term_id ? ' selected="selected"' : '' );
            $value = esc_attr($term->name);
            $value = $value . '&nbsp;&nbsp;(' . (int)$term->count . ')';
            $html[] = "\t" . '<option value="' . $term->term_id . '"' . $default . '>' . $value . '</option>';
        }
        $html[] = '</select>' . "\n";
        return implode( "\n", $html );
    }

    function request($request) {
        global $pagenow;

        if ( is_admin() && 'edit.php' == $pagenow && isset( $request[FB_CPT_TAXONOMY_TYPE_1] ) && FB_CPT_POST_TYPE_1 == $request[FB_CPT_TAXONOMY_TYPE_1] ) {
            $request['taxonomy'] = FB_CPT_TAXONOMY_TYPE_1;
            $request['term'] = get_term($request[FB_CPT_TAXONOMY_TYPE_1], FB_CPT_TAXONOMY_TYPE_1)->name;
            unset($request['name']);
        }

        return $request;
    }

použijte tyto háčky

            // to filter custom post type per custom taxonomy
        add_action( 'restrict_manage_posts', array( &$this, 'restrict_manage_posts') );
        add_action( 'request', array( &$this, 'request' ) );
3
bueltge

Podíval bych se na menu generátoru admin. Vzhledem k tomu, že nabídka je jen vlastní typ příspěvku, jsem si jist, že některé z těchto věcí lze použít jako inspiraci.

0
Vid Luther

Pokud vše, co chcete udělat, je nastavit pozici pro každou "košili", tak proč ne jen uživatele Menu Order, pak můžete třídit podle menu_order ve vašem WP_Query. Pravděpodobně budete muset vytvořit meta box, který nastaví vlastnost postmenu_order. Pak ve vašem WP_Query:

$shirts = new WP_Query( 'post_type=shirt&orderby=menu_order&order=ASC' );

To by fungovalo podobně, jako byste si objednali obrázky na kartě Media Upload Gallery, pro nastavení Menu Page Menu.

Nebo něco nedorozumím?

0
Joe Hoyle

Co mám raději udělat, když vytvářím typ příspěvku v zásuvném modulu nebo v kódu je také přidat tento kód, který vám umožní nastavit výchozí pořadí pro front a back-end a také nastavit proměnnou GET v admin so že WordPress admin rozpozná změnu a vloží šipku nahoru, pokud třídíte podle názvu, data nebo cokoliv jiného, ​​co se zobrazuje v tabulce administrátorů.

add_filter( 'pre_get_posts' , 'my_cpt_order' ); // Runs before the posts are fetched
function my_cpt_order( $query ) {
    // Check query and alter only the query needed
    //echo '<PRE>'; print_r($query); echo '</PRE>'; 
    if ($query->query['post_type'] == 'cpt' && !isset($query->query['orderby'])) {
        $query->set( 'orderby' , 'title' );
        $query->set( 'order' , 'asc' );
        //get the arrow to show up over title in admin
        if (is_admin()) {
            $_GET['orderby'] = 'title';
            $_GET['order'] = 'asc';
        }
    } //if
} //my_cpt_order

Vzhledem k tomu, že menu_order je výchozím nastavením, není to nutné, pokud třídíte vlastní typ příspěvku podle menu_order, ale pokud se jedná o typ příspěvku, kde nechcete, aby se uživatel musel starat o třídění a chcete použít něco jako titul , je to velmi užitečné.

0
Andrew T

Chcete-li mít skutečně libovolné pořadí řazení (zcela nesouvisející s libovolným polem příspěvků), je třeba vytvořit pole „třídit hodnotu“ (nebo „hmotnost“) a zadat číselnou hodnotu pro každou položku v tomto poli. Potom můžete toto pole seřadit.

0
WhIteSidE