如何更改Comments_Popup_link()返回的标题属性?

时间:2011-02-23 作者:user931

我可以通过更改以下函数参数中的注释来更改注释标签:comments_popup_link(\'No Comments;\', \'1 Comment;\', \'% Comments;\');但是,似乎title属性是从核心模块返回的。建议我在不编辑核心模块的情况下更改标题属性。

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

如果您查看函数comments_popup_link() 最后您将看到以下代码:

$title = the_title_attribute( array(\'echo\' => 0 ) );

echo apply_filters( \'comments_popup_link_attributes\', \'\' );

echo \' title="\' . esc_attr( sprintf( __(\'Comment on %s\'), $title ) ) . \'">\';
comments_number( $zero, $one, $more );
echo \'</a>\'; // last line
记下呼叫__(), 翻译功能。我们可以过滤\'gettext\' 更改结果。因为我们不想对每个翻译都运行我们的过滤器,这太慢了,所以当钩子\'comments_popup_link_attributes\' 被称为:

add_filter( \'comments_popup_link_attributes\', \'t5_cclta_init\' );

function t5_cclta_init( $attrs )
{
    add_filter( \'gettext\', \'t5_cclta_change_title\', 10, 3 );
    return $attrs;
}
现在我们只需要真正的过滤器函数:

function t5_cclta_change_title( $translated, $text, $domain )
{
    remove_filter( current_filter(), __FUNCTION__, 10 );

    if ( \'default\' === $domain && \'Comment on %s\' === $text )
        return \'Talk about %s\';

    return $translated;
}
现在标题属性是:谈论文章标题。

SO网友:Peter Girnus

正如他们所说,它是硬编码到WP核心的,最好不要弄乱核心。但是,标题位于<span class="screen-reader-text">Post Title</span> 只需使用CSS来隐藏它。

.screen-reader-text{ display: none; }

结束

相关推荐