Основная таксономия для сообщения

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

К моим постам в блоге прикреплены несколько элементов из моей пользовательской таксономии. Для простоты предположим, что это таксономия “Теги”…

Таким образом, пост может содержать 4 тега, есть ли способ выбрать один тег в качестве основного для поста?

Этот пост очень старый, но я размещу здесь своё решение на случай, если кто-то столкнется с этой же проблемой.

Если вы используете Yoast SEO, вы можете подключиться к их существующей реализации (они уже такое делают для категорий).

function add_variety_primary_term_taxonomy( $taxonomies, $post_type, $all ) {
    if( $post_type == 'product' && isset( $all['my_custom_tax'] ) ) {
        $taxonomies['my_custom_tax'] = $all['my_custom_tax'];
    }

    return $taxonomies;
}

add_filter( 'wpseo_primary_term_taxonomies', 'add_variety_primary_term_taxonomy', 10, 3 );

Также ваша пользовательская таксономия должна иметь ‘hierarchical’ => true, чтобы это работало.

Удачи!

Нет, вы не можете. Таксономии, категории и термины имеют одинаковый ранг в иерархии, когда они находятся на одном уровне. Если вы прикрепите пост к 4 таксономиям, категориям или терминам на одном уровне, все эти таксономии будут равны по рангу.

Единственный способ добиться того, что вы хотите, — это создать родителя с несколькими дочерними элементами под ним, прикрепить пост к родителю и нескольким детям. Этот родитель и будет “основным” тегом для поста.

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

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

Одним из таких решений является использование плагина Yoast SEO, который предлагает возможность установки "основного термина" для категорий. Для расширения этого функционала на пользовательские таксономии, вы можете использовать хук wpseo_primary_term_taxonomies. Пример использования представлен ниже:

function add_variety_primary_term_taxonomy( $taxonomies, $post_type, $all ) {
    if( $post_type == 'product' && isset( $all['my_custom_tax'] ) ) {
        $taxonomies['my_custom_tax'] = $all['my_custom_tax'];
    }
    return $taxonomies;
}

add_filter( 'wpseo_primary_term_taxonomies', 'add_variety_primary_term_taxonomy', 10, 3 );

Этот код позволяет расширить поддержку системы Yoast SEO на пользовательские таксономии, чтобы вы могли назначать им основной тег. Однако важно помнить, что пользовательская таксономия должна быть с hierarchical => true, чтобы это работало.

Если использование плагина Yoast SEO не подходит, можно рассмотреть иное решение. Оно заключается в создании иерархии таксономий, где один тег можно назначить родительским, а другие — дочерними. Таким образом, родительский тег будет считаться "основным".

При проектировании такой системы важно учитывать SEO-аспекты. Установка правильного и подходящего основного тега может повысить релевантность контента в поисковых системах, улучшить внутреннюю навигацию сайта и увеличить вовлеченность пользователей.

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

Удачи в настройке вашей системы!

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

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