如何在帖子作者评论者姓名后添加内联单词?

时间:2016-03-13 作者:akarim

我想在帖子作者姓名的注释后添加一个内联词。假设,我的名字是Tiger,我是文章的作者,所以Post author 每次我在帖子上添加评论时,都会在我的名字后面打印出来。

Like this picture

我不想编辑评论。php文件。我想要自定义函数。php

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

我只想提一下其他选择:

备选方案#1

您说您不想编辑comments.php 当前主题目录中的文件。如果我们需要改变wp_list_comments() 很好,我们可以通过wp_list_comments_args 滤器例如,要添加我们自己的回调:

add_filter( \'wp_list_comments_args\', function( $r )
{
    if( function_exists( \'wpse_comment_callback\' ) )
        $r[\'callback\'] = \'wpse_comment_callback\';
    return $r;
} );
其中wpse_comment_callback() 回调包含注释布局的自定义。

备选方案#2

如果我们看一看,例如二十点十六分主题,我们将看到.bypostauthor 类用于标记样式表中的评论后作者:

.bypostauthor > article .fn:after {
        content: "\\f304";
        left: 3px;
        position: relative;
        top: 5px;
}
您可以根据需要调整内容属性。如果您需要设置样式或在翻译中使用单词,这可能不是您的解决方法。

SO网友:Pieter Goosen

您可以使用get_comment_author 过滤器可根据需要调整显示为注释作者名称的文本。你所需要做的就是检查帖子作者是谁,然后对照评论作者进行检查。

完整的注释对象通过引用作为第三个参数传递给过滤器,我们可以访问该对象以获取注释作者,我们可以将其与post_author post对象的

add_filter( \'get_comment_author\', function (  $author, $comment_ID, $comment )
{
    // Get the current post object
    $post = get_post();

    // Check if the comment author is the post author, if not, bail
    if ( $post->post_author !== $comment->user_id )
        return $author;

    // The user ids are the same, lets append our extra text
    $author = $author . \' Post author\';

    return $author;
}, 10, 3 );
您可以根据需要调整和添加样式

编辑-根据@birgire指出的评论get_comment_class() 设置.bypostauthor 类,用于发表作者评论。

// For comment authors who are the author of the post
if ( $post = get_post($post_id) ) {
    if ( $comment->user_id === $post->post_author ) {
        $classes[] = \'bypostauthor\';
    }
}
我们也可以用它来检查帖子作者的评论。只是不是,它可能不是很可靠,因为它可以被主题或插件覆盖

add_filter( \'get_comment_author\', function (  $author )
{
    if( !in_array( \'bypostauthor\', get_comment_class() ) )
        return $author;

    // The user ids are the same, lets append our extra text
    $author = $author . \' Post author\';

    return $author;
});

SO网友:mukto90

如果我没有弄错的话,你会在评论人的名字上加上一些文字,如果他是文章的作者,对吗?

你需要加入get_comment_author. 检查帖子作者是否是评论者。如果是,则返回自定义文本,否则返回原始文本。

使用此代码-

add_filter( \'get_comment_author\', \'add_text_to_comment_author\' );
function add_text_to_comment_author( $author ){
    global $post;
    if( get_comment( get_comment_ID() )->user_id == $post->post_author ){
        return "custom text here " . $author;
    }
    return $author;
}

相关推荐