サイトにコメント機能を追加して動作チェックをしようと自分でコメントしてみるが、
全ての投稿でコメントが拒否されこんな表示がでてしまう。
このような時に疑うべきポイントは、
1、プログラムの入力ミス
2、wordpressのディスカッション設定
3、function.php のプログラムの引数
<回答>
1.と2.に関しては、書籍を見直してもらうか。
googleで”コメント 入力出来ない”とかで検索かけると出てきますので
調べてみてください。
3.が今回ハマった部分になります。
下のコードが書籍に書いてあるコードですが、そのまま入力してもコメントは拒否されます。
function comments_allow_only_column($open, $post_id) {
if(!in_category('column')) {
$open = false;
}
return $open;
}
add_filter('comments_open', 'comments_allow_only_column', 10, 2);
では、どうしたら良いのかと言うと?
2行目の" if(!in_category('column')) "の引数に" $post_id "を追加していきます。
下のコードを参照してください。
function comments_allow_only_column($open, $post_id) {
if(!in_category('column', $post_id)) {
$open = false;
}
return $open;
}
add_filter('comments_open', 'comments_allow_only_column', 10, 2);
なぜ、引数がないとだめなのかと言うと、
全てのページに固有IDがあるため,「$post_id」でどのページかを判定しているからです。
今回の場合だと、コラムカテゴリーではない、どのページなのか?をみていると言った感じです。
ページの固有IDは、編集画面に行けば確認できます。
if(!in_category()) { $open = false; }の意味は、
もし、サイトページから 「コラム(column)」 カテゴリー以外の
ページが開いた時、コメント入力欄を非表示にする条件の設定です。
理由なども書いてみましたが、間違っていたら教えてください。
参考サイトurl:https://xn--t8j3bz04sl3w.xyz/wordpress/post-id/1026/
参考サイトurl:https://www.prime-strategy.co.jp/5796/