问题描述
Yoast 的 WordPress SEO 插件允许用户将 SEO 标题和元描述添加到分类术语归档页面。然后将它们用于文档的头部。
我试图在分类归档模板中显示分类术语的 SEO 标题为 H1 。
为了做到这一点,发布的类型或页面很容易:
echo get_post_meta($post->ID, '_yoast_wpseo_title', true);
在归档模板上,这不工作。
有谁知道如何让这个工作?
屏幕截图示例
这是特定标签术语的标题。我在我的归档模板中显示这个标题 – 然后显示一个自定义分类术语。
最终代码
这是我最后在我的 archive.php
模板中使用的。如果您使用自定义分类法,它将起作用。对于标签或类别,请看下面 Mike Mike 的答案。
<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>
最佳解决方案
获取存档 SEO 标题
如果您定义了自定义帖子类型存档标题,您可以通过以下方式获得:
$titles = get_option( 'wpseo_titles' );
$title = $titles['title-ptarchive-POST_TYPE'];
echo apply_filters( 'the_title', $title );
请记住用自己的 Custom Post Type 替换 POST_TYPE
。
要显示所有 wpseo_title
变量,可以使用:
printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_titles' ), 1 ) );
所以你可以轻松地选择你需要的。
获取术语 SEO 标题
Categories
通过使用此代码,您可以获得您定义的 SEO 标题:
$cat_id = get_query_var( 'cat' );
$meta = get_option( 'wpseo_taxonomy_meta' );
$title = $meta['category'][$cat_id]['wpseo_title'];
echo apply_filters( 'the_title', $title );
Tags
通过使用此代码,您可以获得您定义的 SEO 标题:
$tag_id = get_query_var( 'tag' );
$meta = get_option( 'wpseo_taxonomy_meta' );
$title = $meta['post_tag'][$tag_id]['wpseo_title'];
echo apply_filters( 'the_title', $title );
要显示所有 wpseo_taxonomy_meta
变量,可以使用:
printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_taxonomy_meta' ), 1 ) );
这样可以看到结构和可用变量。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。