在 Yoast 变量片段中获取 parent 个自定义分类法

Get parent of custom taxonomy in Yoast variable snippet

我有一个使用自定义分类法的目录 wordpress 网站。层次结构设置如下:国家>州>城市。当我将自定义分类法放入 Yoast 以获取 SEO 标题和元描述时,它只会吸引城市。我还希望通过创建一个新的 Yoast 变量片段来获取状态,该片段将获取用户当前 URL 的 parent(即状态)。

这是我目前在 functions.php 文件中的内容,但它正在引入国家/地区。所以它目前正在引入顶级 parent。我怎样才能得到立即parent,这将是状态?

function get_state() {
$myterms = get_terms( array( 'taxonomy' => 'w2dc-location', 'parent' => 0 ) );
  foreach($myterms as $term) {
    return $term->name;
  }
}

function register_custom_yoast_variables() {
   wpseo_register_var_replacement( '%%state%%', 'get_state', 'advanced', 'some help text' );
}

add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');

网站link:https://www.helpingmehear.com/find-an-expert/hearing-aids/united-states/colorado/castle-rock/accent-on-hearing/

这是一个将 return 城市和州的解决方案,因为您只选择了一个分类法(城市)并且该州是城市的直接 parent。我认为你想使用 get_the_terms()

而不是 get_terms()
function get_state() {
    global $post;
    // Get the terms for the current post in your tax
    $myterms = get_the_terms( $post->ID, 'w2dc-location' );
    // Check if parent exists
    if ($myterms[0]->parent !== 0){
        // Get the term object
        $parent = get_term_by('id', $myterms[0]->parent, 'w2dc-location');
        return $parent->name;
    }
}

function register_custom_yoast_variables() {
   wpseo_register_var_replacement( 'state', 'get_state', 'advanced', 'some help text' );
}
add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');

Yoast 标题框中的用法...

%%category%% %%state%%