it-swarm.asia

فرز بصري ترتيب "أنواع النشر المخصصة" للمستخدمين النهائيين

الآن مع أنواع المنشورات المخصصة وبتات المحتوى الأخرى التي لا تحتاج بالضرورة إلى تنظيم زمني حسب التاريخ ، على سبيل المثال: لدى العميل 100 تي شيرت كنوع نشر مخصص "SHIRT" ويريد ضبط ترتيب مظهره .

ما هي الطريقة التي تقترح اتباعها للسماح للمحرر/المشرف على الموقع بترتيبها؟

8
Amit
1
Drew Gourley

يمكنك تصفية حول التصنيف

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

استخدام هذه السنانير

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

أود أن ننظر إلى شاشات المسؤول مولد القائمة. نظرًا لأن القائمة ليست سوى نوع منشور مخصص ، فأنا متأكد من إمكانية استخدام بعض هذه الأشياء كمصدر إلهام ..

0
Vid Luther

إذا كان كل ما تريد القيام به هو تعيين موضع لكل "قميص" ، فلماذا لا يقوم المستخدم فقط بترتيب القائمة ، فيمكنك الترتيب حسب القائمة_الترتيب في WP_Query الخاص بك. من المحتمل أن تضطر إلى إنشاء مربع تعريف يحدد خاصية menu_order للنشر. ثم في WP_Query الخاص بك:

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

قد يتشابه هذا مع الطريقة التي تطلب بها الصور في علامة التبويب Media Upload Gallery ، لتعيين ترتيب قائمة الصفحة.

أم أنا سوء فهم شيء؟

0
Joe Hoyle

ما أفضل القيام به إذا كنت أقوم بإنشاء نوع المنشور في مكون إضافي أو في الكود هو إضافة هذا الرمز أيضًا ، والذي يسمح لك بتعيين ترتيب افتراضي للواجهة الأمامية والخلفية وكذلك تعيين متغير GET في المشرف حتى أن مشرف WordPress يتعرف على التغيير ويضع السهم لأعلى إذا كنت تقوم بالفرز حسب العنوان أو التاريخ أو أي شيء آخر تعرضه في جدول المسؤول.

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 هو الإعداد الافتراضي ، فلن تكون هناك حاجة إلى ذلك إذا كنت تقوم بتصنيف نوع منشور مخصص حسب menu_order ، ولكن إذا كان نوعًا من النشرات لا تريد أن يقلق المستخدم بشأن فرز نفسه وتريد استخدام شيء مثل العنوان إنه مفيد للغاية.

0
Andrew T

من أجل الحصول على ترتيب فرز اعتباطي حقيقي (لا علاقة له بأي حقل نشر) ، ستحتاج إلى إنشاء حقل "قيمة الفرز" (أو "الوزن") وإدخال قيمة رقمية لكل عنصر في هذا الحقل. يمكنك بعد ذلك الفرز في هذا المجال.

0
WhIteSidE