WordPressでコメントを投稿者本人にだけ表示させる

小説サイトではコメントを受け付けていながら、コメントリストを表示させていませんでした。ようは、

<!--?php comment_form(); ?-->
は残したまま、
<!--?php wp_list_comments( $args, $comments ); ?-->

を消していました。

これを、投稿した本人にだけは表示させるようにカスタマイズしました。
購読者登録を使っていないので、もちろんログイン機能も使えません。
読者の98%が即ブラウザバックするレベルで興味のないことだと思うので、自分用のメモです。
<?php
$comments = get_comments(array('status' => 'approve' ,'number' => 1));
foreach($comments as $comment);
$post = get_post($comment->comment_post_ID);
?>
//number=>1にすることで最新1件だけ載せるようにする
//これだけだと他の閲覧者にもその最新1件が見えてしまうので、
//以下で最新1件のコメント投稿者と閲覧者のIPが一致した場合だけコメントリスト(1件)を表示させる
 
<!--?php $ip=$_SERVER['REMOTE_ADDR']; ?--> //閲覧者のIP
<!--?php $ip2 = get_comment_author_IP( $comment_ID ); ?--> //コメント投稿者のIP
<!--?php if(strstr($ip, $ip2)): ?--> //一致するかどうか、一致したら以下を表示
<!--?php printf(__('%1$s at %2$s'), get_comment_date('Y/m/d'),  get_comment_time('H:i')); ?-->
<!--?php comment_text() ?-->

これで、IPが変わるか、次のコメント投稿者が現れるまでは表示され続けます。

普通ならcomment.phpに書けばいいのですが、今回はわざわざWordPressのsingle.phpに複数テンプレートを設定させるに書いたので、
コメント送信後に、?type-commentに飛ぶようにfunction.phpに以下を書いてwp-comment-post.phpの記述を上書きしました。
function custom_comment_post_redirect( $location ) {
$redirect_to = get_permalink().'?type=comment';
return $redirect_to;
}
add_filter( 'comment_post_redirect', 'custom_comment_post_redirect' );



02/08 人間の愚かさを教えてくれる『フランケンシュタインの誘惑』が好きすぎる

はじめてこのサイトに来た方への案内所はこちら

類似記事

Copy&Paste


本文のコピペやスクショはしないでください