Произовльное поле из рубрик
В общем задача, нужно создать одно произвольное поле. В админке это список рубрик с чекбоксами (лучше конечно список подрубрик одной рубрики), можно просто дополнительный список рубрик — как стандартный от wp. На выводе должна быть ссылка на рубрику с название этой рубрики. Пример, выбираем в админке рубрику Москва, получаем на странице записи ссылку — <a href=»site.ru/moscow»>Москва</a>. Подскажите, пожалуйста, как такое реализовать? На проекте есть для других полей плагин ACF, если он здесь поможет.
Для создания новой таксономии, откройте файл functions.php который расположен в папке с вашим шаблоном(шаблон который вы используете на вашем сайте вордпресс)
Добавьте следующий код:
add_action('init', 'create_taxonomy'); function create_taxonomy(){ // заголовки $labels = array( 'name' => 'Категория спорт', 'singular_name' => 'sport', 'search_items' => 'Поиск', 'all_items' => 'Все категории', 'parent_item' => 'Вложенные категории', 'parent_item_colon' => 'Вложенные категории:', 'edit_item' => 'Редактировать категорию', 'update_item' => 'Обновить', 'add_new_item' => 'Добавить новую', 'new_item_name' => 'Имя категории', 'menu_name' => 'sport', ); // параметры $args = array( 'label' => '', // определяется параметром $labels->name 'labels' => $labels, 'public' => true, 'show_in_nav_menus' => true, // равен аргументу public 'show_ui' => true, // равен аргументу public 'show_tagcloud' => true, // равен аргументу show_ui 'hierarchical' => false, 'update_count_callback' => '', 'rewrite' => true, //'query_var' => $taxonomy, // название параметра запроса 'capabilities' => array(), 'meta_box_cb' => null, // callback функция. Отвечает за html код метабокса (с версии 3.8): post_categories_meta_box или post_tags_meta_box. Если указать false, то метабокс будет отключен вообще 'show_admin_column' => false, // Позволить или нет авто-создание колонки таксономии в таблице ассоциированного типа записи. (с версии 3.5) '_builtin' => false, 'show_in_quick_edit' => null, // по умолчанию значение show_ui ); register_taxonomy('sport', array('post'), $args ); }
Данный код добавит новую таксономию (под названием sport), которая будет отображаться в админке там же где обычные категории(чуть ниже по меню)
Так же при создании поста вы увидите их справа под обычными категориями.
Для того что бы вывести данные категории в посте откройте файл single.php. Выбирите место где вам нужно вывести и пропишите:
<?php echo get_the_term_list(get_the_ID(), 'sport', '', ', ', ''); ?>
Ссылки на категории выведутся через запятую.
Будут вопросы — задавайте.
Как мне кажется лучше будет создать новую таксономию(как блок с рубриками) и выбирать их там, затем выводить таксономию.
Или вам нужны именно произвольные поля?
Уточните и я подскажу вам как реализовать:)
Наверное хватит просто новой таксаномии (стандартного списка рубрики), и выводить их в виде ссылок. Только подскажите, пожалуйста, как реализовать все это, таксономии никогда не создавал новые.
Большое спасибо за подробную инструкцию, но возникли два дополнительных вопроса.
1) Выводиться в записи не дополнительный список рубрик, а дополнительный список меток. Подскажите, пожалуйста, как все таки выбор реализовать через список рубрик? Версия WordPress 4.3.
2) Также не получилось добавить 2 таких таксономии на странице, мне нужно сделать 2 таких дополнительных рубрики. — Районы и Метро. Ваша версия отлично работает, но сделать дополнительную из нее не вышло.

1. выводится список рубрик, вы наверное просто не добавили туда категорий
2. скопируйте код и вставьте его еще раз + замените слово «sport» на свое(на английском без пробелов и спецсимволов), во второй и третей строке замените название функции «create_taxonomy» на свое(что бы не повторялись, например create_taxonomy_new ).
У меня в записи выводиться поле меток, вот скриншот, http://joxi.ru/BA00n1nIBl0NVA . Категории я добавил.
По второму пункту все отлично, спасибо большое.

Найдите строку:
'meta_box_cb' => null, // callback функция. Отвечает за html код метабокса (с версии 3.8): post_categories_meta_box или post_tags_meta_box. Если указать false, то метабокс будет отключен вообще
Замените ее на:
'meta_box_cb' => 'post_categories_meta_box', // callback функция. Отвечает за html код метабокса (с версии 3.8): post_categories_meta_box или post_tags_meta_box. Если указать false, то метабокс будет отключен вообще
Все было описано. Нужно чуть чуть внимательности..
Спасибо, теперь отображаются именно категории, не обратил внимание на эту сроку, извиняюсь.
Но появилась еще одна проблема, выбираю рубрику, обновляю запись, вместо моей выбранной рубрики, появляется новая рубрика с именем — 6. Остается активной она, а не выбранная мной рубрика. При новой попытке, появляется рубрика 7, и т д.

Замените массив $args на следующий:
$args = array( 'hierarchical' => true, 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_nav_menus' => false, 'show_tagcloud' => false, 'query_var' => true, 'rewrite' => array('slug' => 'sport') );