检查当前用户是否为第一条评论的作者

时间:2017-07-16 作者:shafee ul kabir Fahim

我正在编辑评论。php文件用于我的网站。我希望评论部分是这样的:只有发表第一条评论的人和帖子作者才能逐个创建下一条评论。我的代码现在是这样的。这与$current_user->ID == $challengerName 不起作用。。

$challengerName = \'\';

global $post, $current_user;

$commentNum = get_comments_number();

if ( $commentNum < 10 ) {
    if ( $commentNum == 0 ) {
        if ( $post->post_author == $current_user->ID ){

        }
        else{
                    comment_form($comment_args);
        }
    }

    if ( $commentNum == 1 ) {
        $challengerName = get_comment_author();

        if ( $post->post_author == $current_user->ID ) {
                        comment_form($comment_args);
        }
        else{

        }

    }
//This handles until comment number 1
if ( $commentNum > 1) {

    if ($commentNum % 2 == 0) {
        if ( $post->post_author == $current_user->ID ){

        }
        elseif ($current_user->ID == $challengerName)
        {
                    comment_form($comment_args);
        }   
    }
    else{
        if ( $post->post_author == $current_user->ID ){
                        comment_form($comment_args);
        }
        else{

        }
    }
}
}//Check end if number of comments is 10 or less
else
{
    echo "Debate Over";
}

1 个回复
SO网友:birgire

Helper function

以下是一个帮助函数(未测试),用于检查给定用户ID是否是给定帖子ID的第一个注释者:

/**
 * Check if a given user ID is the first commenter for a given post ID
 *
 * @param int   $user_id User ID
 * @param int   $post_id Post ID
 * @return bool True/False
 */
function wpse_is_user_first_commenter( $user_id = 0, $post_id = 0 )
{
    $first_comment = get_comments( 
        [ 
            \'status\'  => \'approve\', 
            \'number\'  => 1, 
            \'order\'   => \'ASC\', 
            \'orderby\' => \'comment_date_gmt\',
            \'post_id\' => (int) $post_id, 
        ] 
    );

    if( empty( $first_comment ) )
        return false;

    return $first_comment[0]->user_id === $user_id;
}

Usage example:

检查当前用户是否是当前帖子的第一个评论者:

if ( wpse_is_user_first_commenter( get_current_user_id(), get_the_ID() ) )
{
    // ...
}
希望您能根据自己的需要进行调整!

结束

相关推荐

如何正确使用Comments-template.php

我想修改已登录用户和未登录用户的评论表单。我通过更改注释修改了未登录用户的表单。php,但我不太确定如何为登录用户修改我的表单。我知道我必须使用comments\\u template(),但每当我尝试在页面中使用它时。php,我遇到这样的错误Notice: Undefined variable: args in {PATH}/twwr-theme/comments-template.php on line 13 这些是我评论的内容。php,有点乱<?php if (!empty