你需要做这些,以便;“显示注释”;零件工作正常:
在;编辑注释;页码(位于wp-admin/comment.php
), 传递给元框回调的第一个参数(您的my_post_comment_meta_box()
函数)是WP_Comment
对象而不是WP_Post
对象,因此需要手动定义$post
在您的功能中。
添加回get-comments
nonce到您的函数,就像在原始函数中一样post_comment_meta_box()
作用
然后,用post_ID
作为输入id
并将注释的post ID作为值。
元数据框使用一个名为commentsBox
定义见wp-admin/js/post.js
, 因此,您需要在页面上加载该脚本。
因此,您的函数应该如下开始:
function my_post_comment_meta_box( $comment ) { // use $comment and not $post
$post = get_post( $comment->comment_post_ID ); // manually define $post
// Add the post ID input.
echo \'<input type="hidden" id="post_ID" value="\' . $post->ID . \'">\';
// Then the AJAX nonce.
wp_nonce_field( \'get-comments\', \'add_comment_nonce\', false );
然后您可以使用
admin_enqueue_scripts
hook 加载
post.js
脚本:
add_action( \'admin_enqueue_scripts\', \'my_admin_enqueue_scripts\' );
function my_admin_enqueue_scripts() {
// Enqueue the script only if the current page is comment.php
if ( \'comment\' === get_current_screen()->id ) {
wp_enqueue_script( \'post\' );
}
}
如果您想要评论的操作链接,如;答复;和;“快速编辑”;工作,然后:
在上面的my_admin_enqueue_scripts()
函数,在wp_enqueue_script( \'post\' );
:
// Enqueue the comment reply script.
wp_enqueue_script( \'admin-comments\' );
然后在该函数之后,添加该函数,输出内联评论回复表单:(我们必须将其放在标题中,以便
action
输入未被覆盖。有一种jQuery/JS方法可以解决这个问题,但我只使用以下方法,不用担心,默认情况下表单是隐藏的。)
add_action( \'in_admin_header\', \'my_in_admin_header\' );
function my_in_admin_header() {
if ( \'comment\' === get_current_screen()->id ) {
wp_comment_reply( \'-1\' );
}
}