You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助:让获取RankMath SEO标题的短代码适配自定义文章类型user_ads

解决Rank Math SEO标题短代码扩展到自定义分类/文章类型的问题

看起来你遇到的核心问题是:原来的短代码只针对文章/页面这类Post类型读取元数据,但你提到的user_ads相关条目实际上是自定义分类法的术语(从编辑URL是term.php就能看出来,这是WordPress管理分类术语的页面),Rank Math对分类术语的SEO标题存储位置和Post类型不一样。

下面是修改后的函数,既能支持默认文章/页面、自定义文章类型的单页,也能支持自定义分类术语页面:

add_shortcode('rm_title', 'rm_shortcode_title');
function rm_shortcode_title(){
    // 处理单内容页面(包括所有自定义文章类型的单页)
    if (is_singular()) {
        global $post;
        $title = get_post_meta($post->ID, 'rank_math_title', true);
        // 如果没有设置Rank Math SEO标题,回退到默认页面/文章标题
        if (empty($title)) {
            $title = get_the_title($post->ID);
        }
        return $title;
    }
    // 处理分类/标签/自定义分类的术语页面(比如你的custom_5662分类)
    elseif (is_tax() || is_category() || is_tag()) {
        global $term;
        $title = get_term_meta($term->term_id, 'rank_math_title', true);
        // 回退到默认术语名称
        if (empty($title)) {
            $title = $term->name;
        }
        return $title;
    }
    // 其他页面(比如首页、归档页)回退到站点名称
    else {
        return get_bloginfo('name');
    }
}

关键修改说明:

  • 新增了is_singular()判断:这个函数会匹配所有自定义文章类型的单页,而不仅仅是默认的post和page,如果user_ads确实是自定义文章类型,它的单页也能正常获取SEO标题。
  • 新增了分类术语处理逻辑:针对term.php管理的自定义分类(你的custom_5662),通过全局$term变量读取term_meta里的Rank Math标题(Rank Math对分类术语的SEO标题同样存在rank_math_title键下)。
  • 增加了回退机制:如果某个页面/术语没有设置Rank Math SEO标题,会自动显示默认标题,避免出现空内容。

现在你可以在user_ads相关的分类术语页面或者自定义文章类型单页中使用[rm_title]短代码,就能正常获取到对应的Rank Math SEO标题了。

内容的提问来源于stack exchange,提问作者lunastorta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 22:02:30