使用AJAX加载自定义格式的评论:回复链接未呈现?

时间:2017-11-23 作者:Runnick

我用AJAX提交评论,然后将其加载到响应中。长话短说,除了页面上没有呈现回复链接外,一切正常。据我所知,问题是不能通过$args 对它。如何访问$argsmax_depth 在回调之外?

回调函数:

 function prefix_format_comment( $comment, $args, $depth ) {
 $GLOBALS[\'comment\'] = $comment;
 ?> 

     <div class="comment" id="comment-<?php echo $comment->ID; ?>"

     ...Comment code – not published here for brevity...

     <?php comment_reply_link( array_merge( $args, array(
            \'reply_text\' => \'Reply\'
            \'depth\'      => $depth,
            \'max_depth\'  => $args[\'max_depth\']
        ) ) ); ?>

    </div>

 <?php 
 }
注释处理功能(为了简洁起见,删除了一些部分)

function prefix_submit_ajax_comment(){
    $comment = wp_handle_comment_submission( wp_unslash( $_POST ) );

    ...handle errors and get $comment_depth...

    $GLOBALS[\'comment\'] = $comment;
    $GLOBALS[\'comment_depth\'] = $comment_depth;

    op_format_comment($comment, $args, $comment_depth); // how to pass args here???



}

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

看来你可以max_depth 通过选项get_option(\'thread_comments_depth\'):

function prefix_submit_ajax_comment(){
    $comment = wp_handle_comment_submission( wp_unslash( $_POST ) );

    ...handle errors and get $comment_depth...

    $GLOBALS[\'comment\'] = $comment;
    $GLOBALS[\'comment_depth\'] = $comment_depth; 
    $args[\'max_depth\'] = get_option( \'thread_comments_depth\' ); // solution 

    op_format_comment($comment, $args, $comment_depth);
}

结束

相关推荐

如何加载管理-AJAX更快,而无需初始化所有插件?

我面临着wp-ajax性能的问题。我正在初始化javascript端的ajax调用,但响应需要3-5秒才能返回。我知道管理ajax调用必须加载整个wp核心,这肯定会对我们的性能造成影响。有没有办法仍然使用admin ajax调用,但不加载所有插件?实际上,在我的php api中,我只使用了wp config中的一些值。或者在我的用例中有没有更好的ajax建议?是否可以使用常规rest API(无需通过管理ajax),但仍然可以使用wp配置中的值?下面是我的js代码(ajax.js):jQuery.ajax