0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

wordpressの教科書ver.4.xでコメントを入力しても受け付けてくれない時の対処

Posted at

サイトにコメント機能を追加して動作チェックをしようと自分でコメントしてみるが、
全ての投稿でコメントが拒否されこんな表示がでてしまう。comment.jpg

このような時に疑うべきポイントは、
1、プログラムの入力ミス
2、wordpressのディスカッション設定
3、function.php のプログラムの引数

<回答>
1.と2.に関しては、書籍を見直してもらうか。
googleで”コメント 入力出来ない”とかで検索かけると出てきますので
調べてみてください。

3.が今回ハマった部分になります。
下のコードが書籍に書いてあるコードですが、そのまま入力してもコメントは拒否されます。

function.php
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.php
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は、編集画面に行けば確認できます。post_id.jpg

if(!in_category()) { $open = false; }の意味は、
もし、サイトページから 「コラム(column)」 カテゴリー以外の
ページが開いた時、コメント入力欄を非表示にする条件の設定です。

理由なども書いてみましたが、間違っていたら教えてください。

参考サイトurl:https://xn--t8j3bz04sl3w.xyz/wordpress/post-id/1026/
参考サイトurl:https://www.prime-strategy.co.jp/5796/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?