Wordpressのコメント欄のタイトル変更が出来なくて詰まった時の話です。
コメント欄上部の「コメントを残す」「コメントする」「コメントをどうぞ」などの文言、英語では「Leave a comment」と表示されるコメント欄のタイトルがtitle_replyで変更できない時にご確認ください。
comment_form_defaultsなどのフックでtitle_replyを使ってもコメント欄のタイトルが変更されない場合、原因はcomments.phpにあります。
この記事の目次
title_replyでコメントタイトルが変更されない
Wordpress関数のうちの一つ、comment form関数の配列引数title_replyにコメント欄のタイトルを入力すればタイトルを変更することが可能です。
functions.phpなどでコメント欄のタイトルを変更したい場合は、フィルターフックのcomment_form_defaultsを使用すれば良いのですが、今回Twenty Twenty-Oneなどの一部のテーマでコメント欄のタイトル変更が出来ませんでした。
comments.phpにtitle_replyが直接記述されていることが原因のようです。
参考
テーマ専用の設定画面でコメントタイトルが変更できるテーマの場合も
comments.php内で設定した値を読み込んでいるのでtitle_replyが効きません。
コメント欄のタイトルを変更する

コメント欄のタイトル「コメントを残す」変更する
まずtitle_replyがうまく動作する場合の例です。
デフォルトテーマTwenty Twentyを使いました。
こちらの「コメントを残す」のタイトル部分を変更してみましょう。
functions.phpに以下のコードを書きます。
function my_comment_form_custom( $args ){ $args['title_reply'] = 'コメントタイトル変更!'; return $args; } add_filter('comment_form_defaults', 'my_comment_form_custom');

title_replyでコメント欄のタイトルを変更
ファイルを保存後、ページをリロードするとタイトルが変更されます。
他にも色々できます。その他については別の記事にまとめました。
コメント欄のタイトルが変更できない
続いてうまく動作しなかった場合です。
Twenty Twenty-Oneでは「コメントする」の部分が変更できませんでした。

タイトルが変更されない
コードを同じようにfunctions.phpに記述してもタイトル部分が変更されません。
詰まったので調べたのですが、あまり有力な情報は発見できず…
ここらでWordPressの関数リファレンスを見ると、comment form関数でtitle_replyに設定したテキストが呼び出されるとありました。
comment form関数はcomments.php内で使用されています。
このcomments.phpは親テーマ内にあり、コメント欄の表示方法が記述されているPHPファイルです。
【comments.phpの場所】
wp-content > themes > テーマ名 > comments.php
それぞれ開いてコードを比べてみました。
うまくいかない場合、title_replyが直接記述されています。
esc_html__('Leave a comment','twentytwentyone')
この部分で「Leave a comment」がtwentytwentyoneの翻訳によって「コメントを残す」に書き換えられているようです。
esc_html__('Leave a comment','default')

翻訳されずに英語のまま出力される
と変更してみます。
翻訳されずにLeave a commentとそのまま表示されました。
解決法-comments.phpを編集する
comments.php内にtitle_replyが直接記述されているとダメみたいです。
ココが原因の可能性が高いので、コメントアウトしてみます。
comments.phpのtitle_reply部分を消してみました。

functions.phpのtitle_replyが反映された
序盤で紹介したコードが効き、コメント欄のタイトルが無事に変更されました!
comments.php内のtitle_replyに直接タイトルを入力してみます。
(親テーマの場合テーマアップロード時に初期化されてしまいます。)

コメント欄のタイトルが変更された
これでもOKのようです。(当たり前か...)
title_replyが効かないテーマについて
Twenty Nineteenの場合も「コメントをどうぞ」が変更できませんでした。

Twenty Nineteenのコメント欄タイトルも変更できない
comments.phpを見てみます。
comment form関数が使われていませんでした。
直接タイトルが記述されています。これではtitle_replyが効かないわけですね。
設定でタイトルが変更できるようになっているテーマの場合
多くの有名テーマの場合、テーマ専用の設定画面が付いており、ここからコメント欄のタイトルを変更できるようになっている場合があります。
このようなテーマのcomments.phpも確認してみます。
当サイトのテーマAFFINGERも設定画面でコメント欄のタイトル変更が可能です。
グローバル変数から設定したタイトル文字を引っ張ってきているようでした。
title_replyに別の変数が入れられているため、やはりfunctions.phpからtitle_replyを使ってタイトル文字を変更することが出来ません。
続いて有名な無料テーマ、Cocoonも確認。
Cocoonもテーマ専用の設定画面があり、こちらからコメント欄のタイトルを変更することが出来るようになっています。
Cocoonの場合、専用の関数を使ってtitle_replyに値を入れているようです。
Cocoonでもtitle_replyが効きませんが、そういうことだったのですね。
まとめ
Wordpressのコメントタイトルがtitle_replyで変更できない場合はcomments.phpに原因あり。
comments.php内のtitle_reply部分をコメントアウトするか削除して対応する。
title_reply_beforeやtitle_reply_afterなども同様で、直接記述されているとfunctions.phpから操作することが出来ないようです。
良く作りこまれた有名テーマの場合、テーマの設定画面でコメント欄のタイトルが変更できるようになっているため、title_replyは効きません。
(commnets.phpがテーマ専用のものになっているため。)
Wordpressのリファレンスや情報サイトで、出来ると書かれているのに自分のサイトでは反映されない時はやはり苦労します。
ではではこのへんで・w・