在Wordpress插件

时间:2018-04-06 14:54:14

标签: php ajax wordpress

我之后用ajax在页面上包含注释,所需的代码在插件中,但是当请求转到插件文件时,comment_template()函数不起作用,Ajax请求成功,但是没有注释。

转到Ajax的代码如下。

add_action('wp_ajax_nopriv_comment_update_get','comment_update_get'); 
add_action('wp_ajax_comment_update_get', 'comment_update_get');

function comment_update_get(){

    global $withcomments;
    $withcomments = 1; 
    $post = get_post($_POST['post_id']); 
    comments_template();
    die();
}   

1 个答案:

答案 0 :(得分:0)

来自Code Reference

  

如果不在单个帖子或页面上,则不会显示评论模板,   或者如果帖子没有评论。

如果您查看source code,您会注意到comments_template()功能会检查我们当前是在帖子或网页上,还是全球 $post对象。

所以:

function comment_update_get(){

    // Set up our required global objects    
    global $post, $withcomments;

    $withcomments = 1;
    $post = get_post( $_POST['post_id'] );

    // Load the comments template
    comments_template();

    // We're done here
    wp_die();

}
add_action( 'wp_ajax_nopriv_comment_update_get','comment_update_get' ); 
add_action( 'wp_ajax_comment_update_get', 'comment_update_get' );