Hợp nhất hai loại bài đăng tùy chỉnh vào một trang quản trị?


9

Tôi đang xây dựng một trang web với 4 loại bài tùy chỉnh. Để làm cho mọi thứ dễ dàng hơn cho khách hàng / quản trị viên của chúng tôi, tôi tự hỏi liệu có cách nào để hợp nhất các loại bài đăng tùy chỉnh đó vào một danh sách trong phần phụ trợ không? Giống như nếu bạn nhìn vào trang quản trị phụ trợ bình thường với danh sách và các cột của bài đăng, một trang như thế có thể kéo theo 3 loại bài đăng khác để dễ dàng sắp xếp / tìm kiếm không?

Tôi không thể kết hợp các CPT thành một, chúng phải duy trì tách biệt bên ngoài trang 'xem' trong khu vực quản trị nếu có thể.

Bất kỳ suy nghĩ về cách làm điều này ?? Hoặc thậm chí nơi để bắt đầu tìm kiếm / suy nghĩ làm thế nào để phát triển điều này?


1
Bạn có thể xem xét việc sử dụng 1 CPT, sau đó tạo một phân loại tùy chỉnh với 2 thuật ngữ phân tách các bài đăng trong CPT đơn lẻ. Sau đó, bạn có thể thực hiện một số logic ở đầu các tệp mẫu mặt trước để gửi khách truy cập đến một mẫu khác dựa trên các điều khoản / thuế
Sy Holloway

Câu trả lời:


2

Chỉ là một điểm khởi đầu, vì chắc chắn các vấn đề sẽ xuất hiện trong quá trình phát triển hơn nữa. Ví dụ: ngay bây giờ, chức năng tìm kiếm bị phá vỡ vì nó mong đợi một chuỗi (post_type) và nó đang nhận được một mảng.

Để liệt kê nhiều loại bài đăng trong màn hình Bài viết, chúng tôi nối vào pre_get_postsvà sửa đổi truy vấn. Trong thử nghiệm này, Bài viết, Trang và Sản phẩm sẽ được hiển thị cùng nhau trong màn hình Bài viết ( http://example.com/wp-admin/edit.php).

add_action( 'pre_get_posts', 'join_cpt_list_wspe_113808' );

function join_cpt_list_wspe_113808( $query ) 
{
    // If not backend, bail out
    if( !is_admin() )
        return $query;

    // Detect current page and list of CPTs to be shown in Dashboard > Posts > Edit screen
    global $pagenow;
    $cpts = array( 'post', 'page', 'product' );

    if( 'edit.php' == $pagenow && ( get_query_var('post_type') && 'post' == get_query_var('post_type') ) )
        $query->set( 'post_type', $cpts );

    return $query;
}

Mã người trợ giúp để hiển thị một cột với mỗi bài Loại Loại:

add_filter( 'manage_edit-post_columns', 'add_cpt_column_wspe_113808' );
foreach( array( 'post', 'page', 'product' ) as $cpt )
    add_action( "manage_{$cpt}_posts_custom_column", 'show_cpt_column_wspe_113808', 10, 2 );

function add_cpt_column_wspe_113808( $columns ) 
{
    $columns[ 'cpt' ] = 'Post Type';
    return $columns;
}

function show_cpt_column_wspe_113808( $column_name, $post_id ) 
{
    if ( 'cpt' != $column_name )
        return;
    echo get_post_type( $post_id );
}

0

Tôi muốn giới thiệu Admin Menu Editor pro cho việc này. Tôi sẽ liên kết với nó ở phía dưới.

Hấp dẫn. Trong một dự án nhất định tôi đang thực hiện tôi đã có một số CPT (loại bài đăng tùy chỉnh) có liên quan. Phần này là Center Trung tâm thông tin 'và họ muốn Thông cáo báo chí, Sách trắng, Lời chứng thực, vv nằm trong Trung tâm thông tin. Ở mặt trước, tạo ra điều này là dễ dàng. Ở mặt sau, chúng tôi cũng muốn nó khớp với nhau. Hầu hết các loại bài đăng tùy chỉnh được đặt là CPT do nội dung cụ thể (tệp meta) và yêu cầu bố cục. Chúng tôi cuối cùng đã có, gần 20 CPT.

Điều đó nói rằng, chúng tôi đã sử dụng plugin biên tập viên quản trị để xóa các CPT của Trung tâm thông tin liên quan khỏi menu phía sau và sau đó Tạo menu 'Trung tâm thông tin' với các liên kết CPT có liên quan bên trong. Trong khi tất cả họ dường như kết hợp, họ không.

Đây là liên kết plugin: http://adminmenueditor.com/ cũng thử bản demo.


Làm thế nào bạn tạo liên kết "Trung tâm thông tin"?
frnhr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.