こんにちは
下記のコードではどうでしょうか。
ちょっと無理矢理感は否めないです。スタイル(CSS)で変更した方が無難でいいかなとは思います。
コード内の、”foobar” は、実際のカスタム投稿タイプ名を記述してください。
function my_comment_meta_boxes() {
global $post;
if ( isset( $post ) ) {
if (
'publish' == $post->post_status
|| 'private' == $post->post_status
|| 'auto-draft' == $post->post_status // <- 自動保存(新規追加)
) {
$page = 'foobar'; // <- カスタム投稿タイプ名
if ( post_type_supports( $page, 'comments' ) ) {
remove_meta_box( 'commentsdiv', $page, 'normal' );
add_meta_box( 'commentsdiv', '〇〇〇', 'my_post_comment_meta_box', $page, 'normal' );
}
}
}
}
add_action( 'add_meta_boxes', 'my_comment_meta_boxes', 20 );
// post_comment_meta_box 関数を参照
function my_post_comment_meta_box( $post ) {
wp_nonce_field( 'get-comments', 'add_comment_nonce', false );
$total = get_comments( array( 'post_id' => $post->ID, 'number' => 1, 'count' => true ) );
$wp_list_table = _get_list_table('WP_Post_Comments_List_Table');
$wp_list_table->display( true );
if ( 1 > $total ) {
echo '<p id="no-comments">まだ〇〇〇はありません。</p>';
} else {
$hidden = get_hidden_meta_boxes( get_current_screen() );
if ( ! in_array('commentsdiv', $hidden) ) {
?>
<script type="text/javascript">jQuery(document).ready(function(){commentsBox.get(<?php echo $total; ?>, 10);});</script>
<?php
}
?>
<p class="hide-if-no-js" id="show-comments"><a href="#commentstatusdiv" onclick="commentsBox.load(<?php echo $total; ?>);return false;"><?php _e('Show comments'); ?></a> <span class="spinner"></span></p>
<?php
}
wp_comment_trashnotice();
}
トピック投稿者
aki
(@akistar02)
ありがとうございます!
>>スタイル(CSS)で変更した方が無難でいいかなとは思います。
いえ、とても良いと思いました!
内容を1行ずつ追っていきながら「なるほどーこういう方法があるのか」と唸ってました。
WPは何年も触ってますが、知らない関数がいっぱいあって日々勉強です。
ありがとうございました!