WordPress:获取自定义分类法的 Yoast SEO 标题

WordPress: Get Yoast SEO title for custom taxonomy

我正在尝试从自定义分类中获取 SEO 标题。

这是我当前的代码:

$my_yoast_wpseo_title = get_term_meta( $term_id, '_wpseo_title', true );
if( $my_yoast_wpseo_title ){
    echo $my_yoast_wpseo_title;
} else {
    echo 'No title';
}

没用。

所以我尝试了不同的元键,例如 _yoast_wpseo_title 以及我可以在他们的文档和其他片段中找到的所有内容。

没有任何效果。

所以我检查了 get_term_meta 的完整输出。像这样:

$my_yoast_wpseo_title = get_term_meta( $term_id );
print_r($my_yoast_wpseo_title);

它显示了很多元字段。但是 Yoast meta 没有存储在那里?! 他们在别的地方吗?

分类有一个自定义的 SEO 标题并在前端显示。

术语的 Yoast SEO 标题存储在 options table。

这至少会给你想要的想法。

$options = get_option( 'wpseo_taxonomy_meta' );
// $options will be an array of taxonomies where the taxonomy name is the array key.
$term_id = get_queried_object_id();
foreach ( $options['your_term_here'] as $id => $option ) {
    if ( $term_id === $id ) {
        /* This returns an array with the following keys
            'wpseo_title'
            'wpseo_focuskw'
            'wpseo_linkdex'
        */      
        echo ( ! empty( $option['wpseo_title'] ) ) ? $option['wpseo_title'] : 'no title';
    }
}

我找到了另一种方法:

$my_yoast_wpseo_title = WPSEO_Taxonomy_Meta::get_term_meta($id, 'produkt_vendor', 'title');
if( $my_yoast_wpseo_title ){
    echo $my_yoast_wpseo_title;
} else {
    echo 'No title';
}

您可以将其与 titledesc 一起使用,而无需前缀 wpseo_