在小部件中调用Yoast SEO标题不起作用

时间:2015-08-11 14:02:45

标签: php wordpress wordpress-plugin

我只是安装Yoast的Wordpress SEO插件,测试标题重写功能,它在我的标题栏(单个帖子)中有效。但是,当我尝试在小部件中调用标题时,我只是收到错误消息

  

警告:缺少kpndg()...

的参数1

我在主题functions.php

中插入此代码
add_filter( 'wpseo_title', 'kpndg' );
function kpndg( $title )  {
    return $title;
} 

然后在我的小部件中调用它:

$out.='<div class="trending-bar add-active bar-' . $i . '">';

    $out.='<a class="trending-link" href="'.get_permalink().'">&nbsp;</a>'; 

    $out.='<div class="title">'.kpndg().'</div>';

    $out.='<div class="trending-color-wrapper">';
        $out.='<div class="trending-color-layer"></div>';
        $out.='<div class="trending-color"></div>';
        $out.='<div class="trending-meta">' . $meta . '</div>';
    $out.='</div>';

$out.='</div>';

我无法弄清楚该代码中的问题。

仅供参考:我使用工业主题的引擎主题

1 个答案:

答案 0 :(得分:1)

这一行:$out.='<div class="title">'.kpndg().'</div>';

您需要指定参数...或者,为$title参数设置默认值:

add_filter( 'wpseo_title', 'kpndg' );
function kpndg( $title = 'foo' )  {
    return $title;
} 

修改

您确定使用get_post_meta(get_the_ID(), '_yoast_wpseo_title', true);代替kpndg()并不意味着吗?

编辑#2

不要为wpseo_title添加新的过滤器,只需创建&#34;帮助函数&#34;:

function kpndg() {
  return get_post_meta(get_the_ID(), '_yoast_wpseo_title', true) ?: get_the_title();
}

然后,在循环中,您可以调用echo kpndg()