小説サイトではコメントを受け付けていながら、コメントリストを表示させていませんでした。ようは、
<!--?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' ); |