问题描述

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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。