在使用评论文本过滤器修改发布的评论时,获取评论列表中单个评论的评论ID

时间:2016-04-19 作者:Parth Kumar

我正在尝试修改注释列表中显示的注释,为此,我使用以下代码:

add_filter( \'comment_text\', \'modify_comment\');
function modify_comment( $text ){
wp_enqueue_script(\'cmt-player\', plugins_url( \'js/cmt-player.js\',__FILE__ ), array( \'jquery\' ), \'\', true );
$comment_id = get_comment_ID();
$file_url = get_comment_meta($comment_id, \'record_file\', true );
$site_parameters = array(
            \'file_url\' => $file_url,
            \'plugin_url\' => plugins_url(),
            \'theme_directory\' => get_template_directory_uri(),
            \'comment_id\' => $comment_id,
        ); 
wp_localize_script( \'cmt-player\', \'wpvr_cmtvar\', $site_parameters );
require( \'lib/cmtplayer-interface.php\' );
}
但我无法获取评论列表中特定评论的评论id,它只能获取新评论的评论id。。

任何帮助都将不胜感激!!

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

这个comment_text 筛选器将注释作为其参数之一传递:

echo apply_filters( \'comment_text\', $comment_text, $comment, $args );

所以你不需要打电话get_comment_ID(), 您只需从$comment 对象

更改:

add_filter( \'comment_text\', \'modify_comment\');

收件人:

add_filter( \'comment_text\', \'modify_comment\', 0, 3 );

然后:

function modify_comment( $comment_text, $comment, $args ){
    wp_enqueue_script( \'cmt-player\', plugins_url( \'js/cmt-player.js\',__FILE__ ), array( \'jquery\' ), \'\', true );
    $comment_id = absint( $comment->comment_ID );
    $file_url = get_comment_meta( $comment_id, \'record_file\', true );
    $site_parameters = array(
        \'file_url\'        => $file_url,
        \'plugin_url\'      => plugins_url(),
        \'theme_directory\' => get_template_directory_uri(),
        \'comment_id\'      => $comment_id,
    ); 
    wp_localize_script( \'cmt-player\', \'wpvr_cmtvar\', $site_parameters );
    require( \'lib/cmtplayer-interface.php\' );
}