Nhiều loại bài tùy chỉnh có thể chia sẻ một phân loại tùy chỉnh?


23

Tôi đang xem xét việc xây dựng lại một trang web drupal trong wordpress và vẫn đang xoay quanh sự khác biệt giữa các hệ thống - đặc biệt là cck / trường và các loại nội dung tùy chỉnh và các cách khác nhau để sử dụng phân loại.

Tôi muốn biết nếu hai loại nội dung tùy chỉnh có thể chia sẻ một phân loại tùy chỉnh. Trong drupal tôi có thể giới hạn việc đăng một loại nội dung cụ thể cho một nhóm người dùng và sau đó việc đăng đó có thể có phân loại chỉ được chia sẻ với một hoặc nhiều loại nội dung khác (nhưng không phải tất cả các loại).

Rời khỏi khía cạnh người dùng có thể xuất hiện với vai trò scoper, bạn có thể làm điều này với wordpress không? Tôi chỉ thấy loại nội dung tùy chỉnh với phân loại tùy chỉnh nhưng không có cách nào để chia sẻ phân loại nhất định giữa 2 hoặc nhiều loại nội dung tùy chỉnh mà không tạo lại ở hai nơi hoặc cho phép toàn cầu thông qua các danh mục / thẻ ...

Cảm ơn, -Chad.

Câu trả lời:


15

Chia sẻ phân loại giữa các CPT

Tôi muốn biết nếu hai loại nội dung tùy chỉnh có thể chia sẻ một phân loại tùy chỉnh.

Đơn giản nói: Có, họ có thể .

Cách chia sẻ

Khi tôi giải thích chi tiết trong bài đăng trên blog này , bạn phải luôn đăng ký các phân loại tùy chỉnh và các loại bài đăng cho nhau càng sớm càng tốt.

Kết thúc quá trình đăng ký của bạn trong một chức năng, móc vào initmóc ở mức ưu tiên mặc định.

register_taxonomy(
    'some_custom_tax',
    'some_post_type',
    $array_of_arguments
);
register_post_type(
    'some_post_type',
    [
        'taxonomies' => [ 'some_custom_tax' ],
        // other arguments
    ]
);

Sẽ không có vấn đề gì nếu bạn sử dụng đối số thứ 2 cho register_taxonomy()hoặc nếu bạn sử dụng register_taxonomy_for_object_type(), vì cả hai đều làm như nhau: Họ lấy $GLOBALS['wp_taxonomies']mảng và gán cho nó đối tượng loại bài (loại).

Lưu ý quan trọng

Chỉ cần đảm bảo rằng bạn đăng ký CT và CPT với nhau khi đăng ký chúng. Khác bạn sẽ không có quyền truy cập vào kết nối đó trong khi móc truy vấn.


2
Một vấn đề tôi đã tìm thấy là quản trị viên không hiển thị chính xác số lượng bài đăng cho CPT sau khi CT được chia sẻ được sử dụng ở nơi khác.
Meetai.com

Tôi không chắc chắn nếu tôi làm theo. Câu hỏi hỏi về việc đăng ký CT cho nhiều CPT. Câu trả lời này trông giống như nó mô tả việc đăng ký CPT và CT cho nhau theo cả hai cách.
chàng người Brazil đó

4

Từ Codex:

phân loại

(mảng) (tùy chọn) Một mảng các nguyên tắc phân loại đã đăng ký như thể loại hoặc post_tag sẽ được sử dụng với loại bài đăng này. Điều này có thể được sử dụng thay cho cuộc gọi register_taxonomy_for_object_type()trực tiếp. Phân loại tùy chỉnh vẫn cần phải được đăng ký với register_taxonomy().

Khi bạn đăng ký loại bài đăng của mình, bạn chỉ định các nguyên tắc phân loại mà nó hỗ trợ hoặc sử dụng register_taxonomy_for_object_type()tại một số điểm khác để thêm phân loại vào loại bài đăng.

Bạn có thể chỉ định phân loại cho nhiều loại bài đăng tùy thích. Phân loại không được gắn với một loại bài cụ thể.


4

Tôi đã có thể đạt được điều này một cách dễ dàng bằng cách chuyển mảng của tất cả các loại bài đăng tùy chỉnh mà tôi muốn chia sẻ phân loại, vì vậy mã của tôi trông như thế này:

add_action( 'init', 'build_taxonomies', 0 );
 function build_taxonomies() {
    register_taxonomy( 'some_custom_tax', array('some_post_type_1','some_post_type_2'), array( 'hierarchical' => true, 'label' => 'Custom Tax Title', 'query_var' => true, 'rewrite' => true ) );   
}

Đây phải là câu trả lời được chấp nhận IMO. Súc tích và cho điểm.
FaCE
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.