WordPress コメント検索ページを作る

WordPressのCocconで作った自分のサイトで、コメント機能を使用して簡単な掲示板みたいなページを使っています。

このコメント欄を、どうにか検索できるようにしたい。というのが、今回の試みです。
色々な方法があると思いますが、WordPressの理解度が全く足りていない私がたどり着いた一例を紹介します。

まず、掲示板やコメント検索の固定ページを作成します。

ここから、テーマファイルエディターでphpを編集していきます。
固定ページは、赤枠で囲まれた”個別投稿ページ(page.php)”の処理を通ります。ちなみに、投稿は、”個別投稿(single.php)”を通るみたいです。

このget_template_part(‘tmp/page-contents’); と、get_footer();の間に目的の処理を追加すればいいことになります。

実際の固定ページのpost_IDを調べて、以下のように分岐させることで、目的の固定ページだけに変更を加えることができます。IDは固定ページの一覧表示で調べることができます。

<?php //固定ページ内容
get_template_part('tmp/page-contents');
if($post->ID==21){
.......................
}
get_footer();
?>

検索フォームは、”検索フォーム(searchform.php)”から引っ張ってきます。

コメントは、get_commentsで取得できるみたいです。

関数リファレンス/get comments - WordPress Codex 日本語版
<?php //固定ページ内容
get_template_part('tmp/page-contents');
if($post->ID==21){
//今回は、search_strというクエリ名を使用しています。
$search_str= filter_input(INPUT_GET, 'search_str');
?>
//action=""には、実際のURLを指定します。
<form class="search-box input-box" method="get" action="/bbs-search/">
<input type="text" placeholder="<?php _e( 'コメントを検索', THEME_NAME ) ?>" name="search_str" class="search-edit" aria-label="input" value="<?php echo esc_attr($search_str); ?>">
<button type="submit" class="search-submit" aria-label="button"><span class="fa fa-search" aria-hidden="true"></span></button>
</form>
<?php
f($search_str!=""){
	$comments = get_comments( array( 'search' => $search_str ) );
foreach ( $comments as $comment ) :
//..............ここにコメントを出力していくphpを記入していきます。
endforeach;
}
}
get_footer();
?>

foreachで、コメントを出力していく中身は、Cocoonの場合は、lib>comments.phpにあるみたいなので、そこを参考に書いていくといいと思います。

コメント本文は出力するには、
echo $comment->comment_content
comment_text();
コメントのリンクは、
comment_link();
コメントが投稿されたページのタイトルは
echo get_the_title($comment->comment_post_ID);

こんな感じになりました。

コメント

タイトルとURLをコピーしました