it-swarm.asia

son kullanıcılar için görsel sıralama "özel gönderi türleri" sıralaması

Şimdi, özel yazı tipleri ve tarihe göre mutlaka kronolojik olarak düzenlenmesi gerekmeyen diğer içerik parçaları ile, örneğin: müşteri "GÖMLEK" özel yazı tipi olarak 100 tişörte sahip ve görünüm sırasını ayarlamak istiyor .

Sitenin editörünün/yöneticisinin SIRALAMA sıralamasını yapması için hangi yaklaşımı önerirsiniz?

8
Amit
1
Drew Gourley

taksonomi hakkında filtre uygulayabilirsiniz

        // 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;
    }

bu kancaları kullan

            // 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

Menü üreticisi yönetici ekranlarına bakardım. Bir menü sadece özel bir yazı tipi olduğundan, bunlardan bazılarının ilham kaynağı olarak kullanılabileceğinden eminim.

0
Vid Luther

Tek yapmanız gereken her "Gömlek" için bir konum ayarlamaksa, neden sadece Menü Sırası'nı kullanmıyorsanız, WP_Query'nüzde menu_order ile sıralayabilirsiniz. Muhtemelen gönderinin menu_order özelliğini ayarlayan bir meta kutusu yapmanız gerekecektir. Sonra WP_Query içinde:

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

Bu, Sayfa Menüsü'nü ayarlamak için Media Upload Galeri sekmesindeki görüntüleri nasıl sipariş ettiğinize benzer şekilde çalışır.

Yoksa bir şeyi yanlış mı anlıyorum?

0
Joe Hoyle

Bir eklenti veya kodda yazı türünü oluşturuyorsam, bu kodu eklemeliyim, bu da ön ve arka uç için varsayılan bir düzen belirlemenize ve ayrıca GET değişkenini yönetici olarak ayarlamanıza izin verir. WordPress yöneticisinin değişikliği tanıması ve başlığa, tarihe veya yönetici tablosunda gösterdiğiniz herhangi bir şeye göre sıralamanız durumunda oku yukarı koyar.

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

Menu_order varsayılan olduğu için, menu_order tarafından özel bir yazı türü sıralıyorsanız, ancak kullanıcının kendilerini sıralama konusunda endişelenmesini istemediğiniz ve başlık gibi bir şey kullanmak istediğiniz bir yazı türüdür , çok kullanışlı.

0
Andrew T

Gerçekten rastgele bir sıralama düzenine sahip olmak için (herhangi bir gönderi alanıyla tamamen ilgisiz), bir "sıralama değeri" (veya "ağırlık") alanı oluşturmanız ve bu alandaki her öğe için sayısal bir değer girmeniz gerekir. Daha sonra o alanda sıralama yapabilirsiniz.

0
WhIteSidE