Плагин WordPress SEO от Yoast позволяет пользователям добавлять SEO-заголовки и мета-описания на страницы архива терминов таксономии. Затем они используются в заголовке документа.
Я пытаюсь отобразить название SEO терминов таксономии как H1 в моем шаблоне архива таксономии.
Чтобы сделать это в сообщении, типе сообщения или странице легко:
echo get_post_meta($post->ID, '_yoast_wpseo_title', true);
На архивных шаблонах это не работает.
Кто-нибудь знает, как заставить это работать?
Пример скриншота
Это заголовок конкретного тега. Я пытаюсь отобразить этот заголовок - но затем для пользовательского термина таксономии - в моих шаблонах архива.
Финальный код
Это то, что я использовал в своем archive.php
шаблоне. Это работает, если вы используете пользовательскую таксономию. Для тегов или категорий взгляните на ответ Майка Мадерна ниже.
<h1 class="archive-title">
<?php
if ( is_tax() ) :
$taxonomy = get_queried_object()->taxonomy;
$term_id = get_queried_object()->term_id;
$meta = get_option( 'wpseo_taxonomy_meta' );
$title = $meta[$taxonomy][$term_id]['wpseo_title'];
//printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_taxonomy_meta' ), 1 ) );
if ( isset($meta) && !empty($title) ) :
echo apply_filters( 'the_title', $title );
else :
single_term_title();
endif;
endif;
?>
</h1>
источник
$tag_id
.get_queried_object()->term_id
Вместо этого мне пришлось использовать , такget_query_var()
как первый возвращает идентификатор, второй возвращает слаг, заставляя код выдавать уведомления «неопределенный индекс». Кроме того , позаботьтесь , чтобы проверить, есть это что - нибудь набор на$meta['post_tag|category']
, как вы получите неопределенные индексных уведомления , а также. (WP 4.2.2, кстати)На странице архива в цикле сообщений добавьте следующую строку кода, чтобы она работала
Скажите, работает ли он для вас, или я предоставлю другое решение.
источник
Получение фокуса ключевого слова для категорий и тегов
Чтобы получить ключевое слово focus для категории или тега программным способом, вы можете использовать любой из этих двух методов:
Это в основном подход, использованный Майком в конце его поста.
или
Я предпочитаю второй подход, потому что таким образом мне не нужно извлекать или заботиться о получении мета-опции самостоятельно.
В вашем случае
functions.php
вы можете захотеть проверить,if class_exists( 'WPSEO_Taxonomy_Meta' )
а затем, возможно, обернуть функцию Yoast в свою собственную функцию, чтобы быть в безопасности на случай, если вы когда-нибудь перестанете использовать Yoast SEO.Некоторый фон
Как упоминалось в оригинальном вопросе, что-то вроде
get_post_meta( $tag->term_id, '_yoast_wpseo_focuskw', true);
не будет работать для категорий и страниц (ничего не вернется).Так почему так?
Это связано с тем, что для категорий и тегов ключевое слово focus сохраняется в другом месте базы данных. Вместо
wp_postmeta
обычного сохранения внутри таблицы, он погружается глубоко вwp_options
таблицу как объект JSON.Методы выше позволяют нам получить доступ к этим значениям.
Наконец, если вы похожи на меня и не можете вспомнить названия таксономий (например: неясно, почему теги используют таксономию,
post_tag
а не простоtag
, просто посмотрите URL-адреса при редактировании категории или тега: он покажет…taxonomy=category…
или как.источник
Ответить Получение фокуса ключевого слова для категорий и тегов
// это работает спасибо
// с остальным API
get / wp-json / wp / v2 / Categories? slug =
slug_name
plugin.in использовать метод 1
изменить линию
$meta['post_tag'][$tag->term_id]['wpseo_focuskw'];
$meta['category'][$param_post_id]['wpseo_focuskw'];
источник