WordPress - 获取当前作者ID以外的循环和插件内部

时间:2015-06-17 16:13:00

标签: wordpress

我正在尝试修改插件。我需要当前帖子的作者ID来完成我正在做的事情。我已经尝试了我在互联网上找到的所有其他方法,声称在循环之外获得了帖子作者ID,但它在插件中不起作用。我猜它是因为插件可能在循环变量之前加载了什么?请原谅我,因为我不是专业人士。 这是我到目前为止所尝试的内容。

1

 $author_id=$post->post_author;

2

 global $post;
 $author_id=$post->post_author;

3

 $post_tmp = get_post($post_id);
 $author_id = $post_tmp->post_author;

4。

 $author_id = $posts[0]->post_author;

但插件的目录中没有任何作用。有人可以帮忙吗?

详细说明: 我正在尝试修改woodiscuz插件。这个插件的问题是它甚至持有卖家的评论以适度。因此,如果我是卖家,我在评论中回复一些买家,我将不得不批准我自己的评论。 现在要克服这个问题,我提出的条件是,如果帖子(卖方)的作者正在评论,那么就不要将评论放在审核中。 以下是控制注释的插件的功能。

public function comment_submit_via_ajax() {

    $message_array = array();
    $comment_post_ID = intval(filter_input(INPUT_POST, 'comment_post_ID'));
    $comment_parent = intval(filter_input(INPUT_POST, 'comment_parent'));
    if (!$this->wpc_options->wpc_options_serialized->wpc_captcha_show_hide) {
        if (!is_user_logged_in()) {
            $sess_captcha = $_SESSION['wpc_captcha'][$comment_post_ID . '-' . $comment_parent];
            $captcha = filter_input(INPUT_POST, 'captcha');
            if (md5(strtolower($captcha)) !== $sess_captcha) {
                $message_array['code'] = -1;
                $message_array['message'] = $this->wpc_options->wpc_options_serialized->wpc_phrases['wpc_invalid_captcha'];
                echo json_encode($message_array);
                exit;
            }
        }
    }
    $comment = filter_input(INPUT_POST, 'comment');

    if (is_user_logged_in()) {
        $user_id = get_current_user_id();
        $user = get_userdata($user_id);
        $name = $user->display_name;
        $email = $user->user_email;
        $user_url = $user->user_url;
    } else {
        $name = filter_input(INPUT_POST, 'name');
        $email = filter_input(INPUT_POST, 'email');
        $user_id = 0;
        $user_url = '';
    }

    $comment = wp_kses($comment, array(
        'br' => array(),
        'a' => array('href' => array(), 'title' => array()),
        'i' => array(),
        'b' => array(),
        'u' => array(),
        'strong' => array(),
        'p' => array(),
        'img' => array('src' => array(), 'width' => array(), 'height' => array(), 'alt' => array())
    ));

    $comment = $this->wpc_helper->make_clickable($comment);

    if ($name && filter_var($email, FILTER_VALIDATE_EMAIL) && $comment && filter_var($comment_post_ID)) {

        $held_moderate = 1;
        if ($this->wpc_options->wpc_options_serialized->wpc_held_comment_to_moderate) {
            $held_moderate = 0;
        }
// $held_moderate = 1 -> No moderation          
/*This is the part where I need to put the custom condition*/
    if($post_author_id == get_current_user_id())
    {           
            $held_moderate = 1;             
    }
        $new_commentdata = array(
            'user_id' => $user_id,
            'comment_post_ID' => $comment_post_ID,
            'comment_parent' => $comment_parent,
            'comment_author' => $name,
            'comment_author_email' => $email,
            'comment_content' => $comment,
            'comment_author_url' => $user_url,
            'comment_type' => 'woodiscuz',
            'comment_approved' => $held_moderate
        );
        $new_comment_id = wp_insert_comment($new_commentdata);
        $new_comment = new WPC_Comment(get_comment($new_comment_id, OBJECT));

        if (!$held_moderate) {
            $message_array['code'] = -2;
            $message_array['message'] = $this->wpc_options->wpc_options_serialized->wpc_phrases['wpc_held_for_moderate'];
        } else {
            $message_array['code'] = 1;
            $message_array['message'] = $this->comment_tpl_builder->get_comment_template($new_comment);
        }
        $message_array['wpc_new_comment_id'] = $new_comment_id;
    } else {
        $message_array['code'] = -1;
        $message_array['wpc_new_comment_id'] = -1;
        $message_array['message'] = $this->wpc_options->wpc_options_serialized->wpc_phrases['wpc_invalid_field'];
    }
    echo json_encode($message_array);
    exit;
}

0 个答案:

没有答案