таксономические теги..это не работает

Вопрос или проблема

add_action( ‘init’, ‘create_topics_nonhierarchical_taxonomy’, 0 );

function create_topics_nonhierarchical_taxonomy() {

// Метки для интерфейса

$labels = array(
‘name’ => _x( ‘Теги блога’, ‘taxonomi общая имя’ ),
‘singular_name’ => _x( ‘Тег блога’, ‘taxonomi единственное имя’ ),
‘search_items’ => __( ‘Поиск тегов блога’ ),
‘popular_items’ => __( ‘Популярные теги блога’ ),
‘all_items’ => __( ‘Все теги блога’ ),
‘parent_item’ => null,
‘parent_item_colon’ => null,
‘edit_item’ => __( ‘Редактировать теги блога’ ),
‘update_item’ => __( ‘Обновить теги блога’ ),
‘add_new_item’ => __( ‘Добавить новый тег блога’ ),
‘new_item_name’ => __( ‘Новое имя тега блога’ ),
‘separate_items_with_commas’ => __( ‘Отделяйте теги блога запятыми’ ),
‘add_or_remove_items’ => __( ‘Добавить или удалить теги блога’ ),
‘choose_from_most_used’ => __( ‘Выберите из самых популярных тегов блога’ ),
‘menu_name’ => __( ‘Теги блога’ ),
);

// Теперь регистрируем неиерархическую таксономию как тег

register_taxonomy(‘blog_tags’,’blog_tags’,array(
‘hierarchical’ => false,
‘labels’ => $labels,
‘show_ui’ => true,
‘show_admin_column’ => true,
‘update_count_callback’ => ‘_update_post_term_count’,
‘query_var’ => true,
‘rewrite’ => array( ‘slug’ => ‘blog_tags’ ),
));
}

Ваш второй параметр функции register_taxonomy должен быть типом записи, к которому вы хотите применить таксономию, или массивом типов записей.

      register_taxonomy('blog_tags','post',array(
        'hierarchical' => false,
        'labels' => $labels,
        'show_ui' => true,
        'show_admin_column' => true,
        'update_count_callback' => '_update_post_term_count',
        'query_var' => true,
        'rewrite' => array( 'slug' => 'blog_tags' ),
      ));

Это заставит эту таксономию появиться для встроенного типа записи post.

Что вам нужно сделать, так это указать как пользовательский тип записи, который вы используете, так и таксономию, которую вы регистрируете. В вашем коде вы использовали blog_tags для обоих, и это не сработает.

Если вы хотите добавить таксономию tag к пользовательскому типу записи blogs, вы должны сделать это следующим образом:

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

Ответ или решение

Таксономия тегов в WordPress — это мощный инструмент для организации и классификации контента. Однако, по описанию вашей проблемы, кажется, что в коде, который вы предоставили для регистрации таксономии, есть несколько нюансов, которые могут вызывать проблемы. Давайте рассмотрим их более подробно.

1. Проверка параметров функции register_taxonomy

Функция register_taxonomy принимает два основных параметра: первый — это название таксономии, а второй — это тип поста, к которому она будет привязана. В вашем начальном коде:

register_taxonomy('blog_tags','blog_tags',array(
    ...
));

второй параметр установлен на 'blog_tags', что неправильно. Правильный вариант — указать существующий тип поста, к которому вы хотите добавить таксономию. Например, если вы хотите, чтобы ваша таксономия работала с стандартными постами (post), вам нужно изменить его на:

register_taxonomy('blog_tags', 'post', array(
    ...
));

Таким образом, это позволит таксономии появляться в интерфейсе редактирования для стандартного типа поста.

2. Использование пользовательского типа поста

Если у вас есть пользовательский тип поста, например 'blogs', и вы хотите, чтобы для него работала ваша таксономия, то вы должны указать именно этот тип:

register_taxonomy('blog_tags', 'blogs', array(
    ...
));

Эта строка делает так, что таксономия будет активна для вашего пользовательского типа постов.

3. Проверьте области видимости

Убедитесь также, что:

  • Параметр 'show_ui' установлен в true, чтобы интерфейс администрирования отображал вашу таксономию.
  • Параметр 'show_admin_column' также установлен в true, чтобы таксономия отображалась в колонках админки.

4. Регистрируйте таксономию корректно

Убедитесь, что код регистрации таксономии расположен в правильном месте, например, в файле functions.php вашей темы или в отдельном плагине. Не забывайте об использовании хука init, как в вашем изначальном примере. Корректная структура будет выглядеть следующим образом:

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

function create_topics_nonhierarchical_taxonomy() {
    $labels = array(
        'name' => _x('Blog Tags', 'taxonomy general name'),
        ...
    );

    register_taxonomy('blog_tags', 'post', array( // Замените 'post' на ваш тип поста, если нужно
        'hierarchical' => false,
        'labels' => $labels,
        'show_ui' => true,
        'show_admin_column' => true,
        'update_count_callback' => '_update_post_term_count',
        'query_var' => true,
        'rewrite' => array('slug' => 'blog_tags'),
    ));
}

5. Тестирование после внесенных изменений

После внесения изменений сохраните файл и проверьте, появилась ли таксономия на странице редактирования постов. Если после внесения всех правок таксономия все еще не отображается, следующие шаги могут включать:

  • Очищение кэша, если у вас есть плагин кэширования.
  • Проверка наличия конфликтов с другими плагинами.
  • Переключение на стандартную тему WordPress, чтобы убедиться, что проблема не в теме.

Заключение

Правильная регистрация таксономий в WordPress предоставляет мощные возможности для управления контентом вашего сайта. Если вы будете следовать указанным выше рекомендациям, это должно помочь вам устранить возникшие проблемы и успешно использовать таксономию тегов.

Используйте описанные шаги как основу для устранения проблем с таксономиями. Удачи в ваших разработках!

Оцените материал
Добавить комментарий

Капча загружается...