Làm thế nào để thêm thẻ vào loại bài tùy chỉnh?


28

Tôi có một loại bài đăng tùy chỉnh được gọi portfoliovà tôi đang cố gắng thêm các thẻ phân loại vào đó, làm thế nào để tôi làm điều này?


@chifliiiii nếu tôi làm điều đó, Danh mục và Thẻ giống như danh mục được sử dụng cho Bài viết. Làm cách nào để có được Danh mục và Thẻ dành riêng cho loại bài đăng mới?
Troy Templeman

@chifliiiii Khi hiển thị các thẻ trong mẫu?
Tối đa

Câu trả lời:


15

Giống như thế này: (Nơi ghi "danh mục đầu tư" là nơi bạn đăng ký phân loại theo loại bài đăng

add_action( 'init', 'create_tag_taxonomies', 0 );

//create two taxonomies, genres and tags for the post type "tag"
function create_tag_taxonomies() 
{
  // Add new taxonomy, NOT hierarchical (like tags)
  $labels = array(
    'name' => _x( 'Tags', 'taxonomy general name' ),
    'singular_name' => _x( 'Tag', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Tags' ),
    'popular_items' => __( 'Popular Tags' ),
    'all_items' => __( 'All Tags' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Edit Tag' ), 
    'update_item' => __( 'Update Tag' ),
    'add_new_item' => __( 'Add New Tag' ),
    'new_item_name' => __( 'New Tag Name' ),
    'separate_items_with_commas' => __( 'Separate tags with commas' ),
    'add_or_remove_items' => __( 'Add or remove tags' ),
    'choose_from_most_used' => __( 'Choose from the most used tags' ),
    'menu_name' => __( 'Tags' ),
  ); 

  register_taxonomy('tag','portfolio',array(
    'hierarchical' => false,
    'labels' => $labels,
    'show_ui' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'tag' ),
  ));
}
?>

@JoeBulk có lẽ nên kiểm tra trang WordPress Codex để đăng ký các nguyên tắc phân loại để có cảm giác tốt hơn cho tất cả các tùy chọn có sẵn: codex.wordpress.org/Feft_Reference/register_taxonomy
Stephen S.

8
Chỉ cần lưu ý rằng điều này sẽ tạo ra một nguyên tắc phân loại hoàn toàn mới gọi là 'thẻ' thay vì thêm phân loại 'post_tag' hiện có vào loại bài đăng tùy chỉnh.
Jake

@chifliiiii làm thế nào để có được các thẻ này trong bài đăng một trang với các liên kết thẻ, cách tạo mẫu cho trang thẻ
Dinesh

1
Tôi đồng ý với Jake, tôi cảm thấy như điều này không giải quyết được vấn đề. Câu trả lời của @Marcus phải là câu trả lời được chấp nhận.
Craig Wayne

58

Hoặc chỉ cần thêm:

'taxonomies' => array('post_tag')

Một loạt các nguyên tắc phân loại đã đăng ký như categoryhoặc post_tagsẽ đượ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().

đến $argsmảng trong functions.php-file nơi bạn tạo loại bài đăng tùy chỉnh với register_post_type().


2
Vui lòng thêm một lời giải thích cho câu trả lời của bạn: tại sao điều đó có thể giải quyết vấn đề?
fuxia

5

Dùng cái này:

add_action( 'init', 'gp_register_taxonomy_for_object_type' );
function gp_register_taxonomy_for_object_type() {
    register_taxonomy_for_object_type( 'post_tag', 'portfolio' );
};

1

Phương pháp 1 (từ các câu trả lời ở trên: https://wordpress.stackexchange.com/a/106211/38771 )

Các loại bài đăng khác nhau sẽ sử dụng cùng một dữ liệu "Thẻ" của loại "bài đăng" mặc định.

  • Lợi ích

    • Tất cả mọi thứ (nên) hoạt động ra khỏi hộp với một dòng

    • Tất cả các thẻ của bạn ở một nơi trong CMS

  • Nhược điểm

    • Quên về một CMS có cấu trúc tốt / dễ sử dụng - danh sách Thẻ trên trang loại bài đăng tùy chỉnh sẽ hiển thị tất cả các Thẻ (không chỉ các thẻ được sử dụng trong các bài viết loại bài tùy chỉnh) với số lượng sai ...
    • Thay đổi đối với Thẻ sẽ ảnh hưởng đến các bài viết "bài đăng" mặc định cũng như các bài viết loại bài đăng tùy chỉnh (Xóa Thẻ sẽ xóa nó trong cả hai loại bài viết)
    • Khó hơn (có thể là không thể) để thiết lập bất kỳ chức năng Thẻ riêng biệt nào: mô tả khác nhau, trường tùy chỉnh, hình ảnh, v.v. (ít nhất là không có nhiều mã hóa tùy chỉnh trên đầu mã Wordpress lõi) ...

Phương pháp 2 (từ các câu trả lời ở trên: https://wordpress.stackexchange.com/a/62263/38771 )

Các loại bài đăng khác nhau sử dụng cấu hình / dữ liệu "Thẻ" khác nhau.

  • Lợi ích

    • Tạo chức năng liên quan đến thẻ khác nhau / rõ ràng khác biệt : mẫu frontend, khả năng, bộ lọc truy vấn, hành động)
    • Gán dữ liệu liên quan đến thẻ khác nhau : dữ liệu trường hoặc thậm chí trường tùy chỉnh
    • Quản lý thẻ tốt hơn trong CMS
      • Ví dụ : Chỉnh sửa / Xóa thẻ "bài đăng" sẽ không ảnh hưởng đến thẻ (có tên tương tự / bị trượt) đối với các loại bài đăng khác
  • Đánh đổi

    Thêm một chút mã để thiết lập

Trong thực tế, chúng là một cách cực kỳ mạnh mẽ để nhóm các mặt hàng khác nhau theo đủ mọi cách. https://codex.wordpress.org/Taxonomies#Custom_Taxonomies


Đây là trường hợp của Phương pháp 1: Một trang web thể thao lớn, bao gồm nhiều chủ đề / giải đấu / môn thể thao với các thẻ như "NBA", "NHL", "Bóng rổ", "Thế vận hội", "Steroid", "Đại học", v.v. Không có ý nghĩa gì để nhân đôi và quản lý, những gì có thể là thẻ +100 và 4 loại bài đăng (loại bài đăng mặc định và 3 loại bài đăng tùy chỉnh). Đối với các nhược điểm, nếu dữ liệu đếm thẻ rất đặc biệt, thì chế độ xem tùy chỉnh có thể được thực hiện cho điều đó. Đối với các thẻ tùy chỉnh tương tự cho mỗi loại bài đăng, dường như chưa có nhu cầu rõ ràng nào (cố gắng hết sức để nghĩ về một ... ví dụ cần thiết).
MarsAndBack

Có nhưng sẽ không tự động có các permalinks thẻ khác nhau cho các loại bài đăng khác nhau. Thẻ "playoffs" sẽ có "/ tag / playoffs" cho tất cả các loại bài đăng. Sau đó, bạn phải thiết lập quy tắc viết lại hoặc sử dụng các thông số GET để tạo các permalinks khác nhau ... Với một phân loại khác nhau cho mỗi loại bài đăng, mỗi thẻ "playoffs" cho mỗi loại bài đăng sẽ có permalink riêng, có thể được tùy chỉnh bằng Mẫu của Wordpress Hệ thống cấp bậc. Điều đó thật tốt nếu các trang "playoffs" khác nhau đối với NBA, NHL ... Tôi đã làm việc trên một trang web có mức độ tùy chỉnh cho các phân loại (trường tùy chỉnh, hình ảnh phân loại, mô tả)
PS

1
Tôi thấy những gì bạn đang nói. Vì vậy, nếu đi với các nguyên tắc phân loại thẻ khác nhau cho mỗi CPT, thì làm thế nào để bạn thực hiện điều đó khi bạn thêm / chỉnh sửa một thuật ngữ trong một loại thuế, nó sẽ bị thay đổi trong các điều khoản duy nhất được đồng bộ hóa về thuế. ví dụ: xác định "Bóng rổ" một lần, giả sử trong Thuế thẻ bài, sau đó khi bạn nhấn lưu, thì "Bóng rổ" cũng được tạo duy nhất trên các loại thuế khác cho CPT. Vì vậy, nhập / chỉnh sửa thẻ một lần và thay đổi được phản ánh qua nhiều loại thuế của thẻ. Cuối cùng, bạn nhận được quản lý thẻ ở một điểm đến, cộng với tình huống permalink mong muốn hơn.
MarsAndBack

Phải đó thực sự là một phương pháp tuyệt vời nếu trang web chia sẻ cùng thông tin phân loại cơ bản (tiêu đề) cho nhiều CPT, cũng như cung cấp tùy chọn để tùy chỉnh thêm các phân loại này (trường tùy chỉnh, hình ảnh, v.v.) cho các CPT khác nhau. Tốt đẹp!
PS

0

Chỉ cần sử dụng mã này có thể là nó giúp bạn

 add_action( 'init', 'create_client_tax' );
function create_client_tax() {
    register_taxonomy( 
            'client_tag', //your tags taxonomy
            'client',  // Your post type
            array( 
                'hierarchical'  => false, 
                'label'         => __( 'Tags', CURRENT_THEME ), 
                'singular_name' => __( 'Tag', CURRENT_THEME ), 
                'rewrite'       => true, 
                'query_var'     => true 
            )  
        );
}

Một phiên bản tước của câu trả lời đã được chấp nhận. Ngoài ra, điều này cũng bổ sung một phân loại hoàn toàn mới thay vì sử dụng phân loại 'post_tag' hiện có.
acidrums4
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.