Як додати теги до спеціального типу публікації?


28

У мене є власний тип публікації під назвою, portfolioі я намагаюся додати до нього таксономію тегів, як це зробити?


@chifliiiii, якщо я це роблю, Категорії та теги такі ж, як і ті, що використовуються для публікацій. Як отримати категорії та теги, які є ексклюзивними для нового типу публікації?
Тройський Темплмен

@chifliiiii Як відображати теги в шаблоні?
Макс

Відповіді:


15

Ось так: (Там, де написано, "портфоліо" - це місце, де ви реєструєте таксономію до типу публікації

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' ),
  ));
}
?>

@JoeBobby, мабуть, варто перевірити сторінку WordPress Codex для реєстрації таксономій, щоб краще зрозуміти всі доступні варіанти: codex.wordpress.org/Function_Reference/register_taxonomy
Stephen S.

8
Лише зауважте, що це створює цілу нову систематику під назвою "тег" замість додавання існуючої таксономії "post_tag" до спеціального типу публікації.
Джейк

@chifliiiii як отримати ці теги на одній сторінці з посиланнями тегів, як створити шаблон для сторінки тегів
Дінеш,

1
Я погоджуюся з Джейком, я відчуваю, що це не вирішує проблему. Відповідь @Marcus має бути такою, що позначена як прийнята.
Крейг Уейн

58

Або просто додати:

'taxonomies' => array('post_tag')

Масив зареєстрованої таксономії , як categoryі post_tagщо буде використовуватися цим пост типу. Це можна використати замість register_taxonomy_for_object_type()прямого дзвінка . Спеціальні таксономії ще мають бути зареєстровані register_taxonomy().

до $argsмасиву в functions.php-file, де ви створюєте спеціальний тип публікації за допомогою register_post_type().


2
Будь ласка, додайте пояснення до своєї відповіді: чому це могло б вирішити проблему?
fuxia

5

Використовуй це:

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

Спосіб 1 (з відповідей вище: /wordpress//a/106211/38771 )

Різні типи публікацій будуть використовувати ті самі дані "Теги" типового типу "повідомлення".

  • Переваги

    • Все (повинно) працює з коробки одним рядком

    • Усі ваші теги в одному місці в CMS

  • Недоліки

    • Забудьте про добре структуровану / просту у використанні CMS - перелік тегів на сторінці користувальницьких типів публікацій відображатиме всі теги (не лише теги, що використовуються у спеціальних статтях про тип публікації) з неправильним підрахунком ...
    • Зміни в тегу вплинуть на статті "розміщення" за замовчуванням, а також на користувацькі статті типу публікації (Видалення тегу видаляє його в обох типах статей)
    • Важче (можливо, неможливо) налаштувати будь-яку окрему функціональність тегів: різні описи, спеціальні поля, зображення тощо (принаймні, не без особливого кодування на вершині основного коду Wordpress) ...

Спосіб 2 (з відповідей вище: /wordpress//a/62263/38771 )

Різні типи публікацій використовують різні конфігурації / дані "Теги".

  • Переваги

    • Створіть різні / чітко розрізнені функції, пов’язані з тегами : шаблони фронтену, можливості, фільтри запитів, дії)
    • Призначте різні дані, пов’язані з тегами : дані полів або навіть власні поля
    • Краще керуйте тегами в CMS
      • Приклад : Редагування / видалення тегу "публікація" не вплине на тег (подібним чином названий / завішений) для інших типів публікацій
  • Компроміс

    Трохи більше коду для налаштування

По правді кажучи, вони є надзвичайно потужним способом групувати різні предмети всілякими способами. https://codex.wordpress.org/Taxonomies#Custom_Taxonomies


Ось випадок методу 1: великий спортивний веб-сайт, який охоплює численні теми / ліги / види спорту з тегами, наприклад, "НБА", "НХЛ", "Баскетбол", "Олімпіада", "Стероїди", "Коледж" тощо. t не має сенсу копіювати та керувати, якими можуть бути теги +100 та 4 типи публікацій (тип публікації за замовчуванням та 3 спеціальні типи публікацій). Щодо недоліків, якщо дані про кількість тегів настільки спеціальні, то для цього можна зробити спеціальний вигляд. Що стосується подібних спеціальних тегів для типу публікації, то, схоже, немає жодної очевидної потреби (намагаючись продумати один ... потрібні приклади).
MarsAndBack

Так, але автоматично не буде різних посилання на теги для різних типів публікацій. Тег "плей-офф" матиме "/ тег / плей-офф" для всіх типів публікацій. Тоді вам доведеться налаштувати правила перезапису або використовувати параметри GET для створення різних постійних посилань ... З різною систематикою для кожного типу публікації кожен тег "плей-офф" для кожного типу публікації матиме власну постійну посилання, яку можна налаштувати за допомогою шаблону Wordpress ' Ієрархія. Це добре, якщо різні сторінки "плей-офф" відрізняються для НБА, НХЛ ... Я працював на сайті з таким рівнем налаштування для таксономій (користувацькі поля, зображення таксономії, опис)
PS

1
Я бачу, що ти кажеш. Отже, якщо ви працюєте з різними таксономіями тегів на CPT, як щодо того, щоб зробити так, коли ви додаєте / редагуєте термін в одному податку, він змінюється в інших податках, тобто синхронізується унікальними умовами в усіх податкових. наприклад, визначте "Баскетбол" один раз, скажімо, у Податкових тегах податку, потім, коли ви натиснете кнопку "Зберегти", "Баскетбол" також буде унікально створений для інших податків для CPT. Таким чином, введіть / відредагуйте тег один раз, і зміна відображається в кількох податках на теги. Зрештою, ви отримуєте управління тегами в одному пункті призначення, а також бажанішу ситуацію з постійною посиланням.
MarsAndBack

Так, це насправді буде чудовим методом, якщо сайт поділяє однакову базову інформацію про таксономії (заголовок) для декількох CPT, а також надає можливість додатково налаштувати ці таксономії (спеціальні поля, зображення тощо) для різних CPT. Приємно!
PS

0

Просто використовуйте цей код, можливо, він вам допоможе

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

Знята версія прийнятої вже відповіді. Крім того, це також додає зовсім нову систематику, а не використання існуючої таксономії "post_tag".
acidrums4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.