it-swarm-vi.tech

sắp xếp trực quan thứ tự "loại bài đăng tùy chỉnh" cho người dùng cuối

Bây giờ với các loại bài đăng tùy chỉnh và các bit nội dung khác không nhất thiết phải được sắp xếp theo thứ tự thời gian theo ngày, ví dụ: khách hàng có 100 áo phông làm loại bài đăng tùy chỉnh "SHIRT" và anh ta muốn đặt thứ tự xuất hiện của họ .

Cách tiếp cận nào bạn đề xuất thực hiện khi để cho biên tập viên/quản trị viên của trang web sắp xếp thứ tự của họ?

8
Amit

Tôi có thể đề nghị những điều này:

http://drewgourley.com/order-up-custom-ordering-for-wordpress/

1
Drew Gourley

bạn có thể lọc về phân loại

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

sử dụng móc này

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

Tôi sẽ nhìn vào màn hình quản trị trình tạo trình đơn. Vì một menu chỉ là một loại bài đăng tùy chỉnh, tôi chắc chắn một số nội dung đó có thể được sử dụng làm nguồn cảm hứng ..

0
Vid Luther

Nếu tất cả những gì bạn muốn làm là đặt một vị trí cho mỗi "Áo", thì tại sao không chỉ sử dụng Thứ tự Menu, sau đó bạn có thể sắp xếp theo menu_order trong WP_Query của bạn. Bạn có thể sẽ phải tạo một hộp meta đặt thuộc tính menu_order của bài đăng. Sau đó, trong WP_Query của bạn:

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

Điều này sẽ hoạt động tương tự như cách bạn đặt hàng hình ảnh trong tab Thư viện Media Upload, để đặt Thứ tự Menu của Trang.

Hay tôi đang hiểu lầm điều gì đó?

0
Joe Hoyle

Điều tôi thích làm hơn nếu tôi tạo loại bài đăng trong plugin hoặc mã là thêm mã này, cho phép bạn đặt thứ tự mặc định cho mặt trước và mặt sau và cũng đặt biến GET trong quản trị viên quản trị viên WordPress nhận ra sự thay đổi và đặt mũi tên lên nếu bạn sắp xếp theo tiêu đề, ngày tháng hoặc bất cứ điều gì khác mà bạn đang hiển thị trong bảng quản trị.

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

Vì menu_order là mặc định nên không cần thiết nếu bạn sắp xếp loại bài đăng tùy chỉnh theo menu_order nhưng nếu đó là loại bài đăng mà bạn không muốn người dùng phải lo lắng về việc tự sắp xếp và bạn muốn sử dụng một cái gì đó như tiêu đề , nó rất tiện dụng.

0
Andrew T

Để o có thứ tự sắp xếp thực sự tùy ý (hoàn toàn không liên quan đến bất kỳ trường bài nào), bạn cần tạo trường "giá trị sắp xếp" (hoặc "trọng số") và nhập giá trị số cho từng mục trong trường đó. Sau đó bạn có thể sắp xếp trên trường đó.

0
WhIteSidE