サポート » 使い方全般 » カスタム投稿の投稿画面でのメタボックスのカスタマイズについて

  • 解決済 aki

    (@akistar02)


    カスタム投稿での投稿画面についてなのですが、
    コメントを有効化したときに「コメント」というメタボックスが表示されますが、この「コメント」というタイトルを任意のものに変えることはできないでしょうか?

    また、このメタボックス内の「コメントする」ボタンを非表示にしたいのですがこちらも可能でしょうか?
    CSSで消せそうなのでそれでもいいのかもしれませんが、他に消せる方法があれば(HTMLをそもそも吐き出させない)知りたいです。

    また、このメタボックス、投稿の新規作成時には表示されていないのですが、新規投稿時に最初から表示させておきたいのですが、こちらも可能なら方法が知りたいです。

    https://i.imgur.com/rFVJ8f2.png
    こちらに質問をまとめた画像をアップしてますので、わかりにくい場合は参考にしていただけますと幸いです。

    もしわかる方がいましたら、教えていただけますと幸いです。
    よろしくお願いいたします。

    • このトピックはakiが2年前に変更しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • ishitaka

    (@ishitaka)

    こんにちは

    下記のコードではどうでしょうか。
    ちょっと無理矢理感は否めないです。スタイル(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は何年も触ってますが、知らない関数がいっぱいあって日々勉強です。

    ありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタム投稿の投稿画面でのメタボックスのカスタマイズについて」には新たに返信することはできません。