wordpressに関して質問させてください。
ブログ等にコメントを投稿した場合ブログの詳細ページに「あなたのコメントは承認待ちです。」と出る場合、この文言を、違う文言に変えたい場合は、どこを、どういじれば良いでしょうか?
いろいろ方法はあるし、そもそもテーマによっても違うんだが。
なるほど、ありがとうございます。ただ、確かに更新すると消えるのはまずいので、テンプレートファイルの方を調べてみます。
◆方法 1Walker_Comment クラスをオーバーライドし、comment メソッド、html5_comment メソッドを弄って、新しい Walker_Comment を作成する。wp_list_comments() の 引数 $args の walker に作成した Walker_Comment を指定する。-----◆方法 2wp_list_comments() の 引数 $args の callback にコールバック先を指定。コールバック先の関数には $comment, $args, $depth という 3 つの値が渡るので、これを使って弄る。
これが理解できなのであれば、やめた方がいいと思います。※ あ、説明が下手くそ過ぎて理解できない・・・というのであれば、ごめんなさい。
そんな複雑なものでもないんだが
というのであれば、方法を明示してはいかがですか?
といっても、明示はされないでしょうから・・・。「あなたのコメントは承認待ちです。」を翻訳前に戻すと「Your comment is awaiting moderation.」です。「Your comment is awaiting moderation.」が記述されている場所は、wp-includes/comment-template.php 内の Walker_Comment クラスの comment メソッドと html5_comment メソッドの 2 箇所です。Walker_Comment クラスは wp_list_comments() 関数の引数の連想配列で walker が指定されていない時に呼び出されます。↓こんな感じです。----if ( empty( $r[’walker’] ) ) {$walker = new Walker_Comment;} else {$walker = $r[’walker’];}----※wp-includes/comment-template.phpより引用
-
次に、wp_list_comments() 関数の引数の連想配列で callback が指定れていない場合、Walker_Comment クラスの comment メソッドか html5_comment メソッドのどちらかが呼び出されます。どちらかなのは、wp_list_comments() 関数の引数の連想配列で format に指定されている値によって変わるからです。callback が指定されている場合は、comment メソッドか html5_comment メソッドは呼び出されずに、callback に指定した関数が呼び出されます。
ということから、解決方法は上記に上げた 2 点になります。
-確かに >1 の回答のようにコアの翻訳ファイルを弄れば解決はします。が、それでは、アップデートの度に翻訳ファイルを弄る事になります。それに、CMS や フレームワークを使っていてコアに手を入れるのは御法度だと思います。これがクライアントワークの場合「アップデートしないでくださいねー」という意味不明な注意をしなくてはいけなくなります。ま、翻訳ファイルくらいたいした影響はないと思うので、いいといえばいいかもしれませんが。
意地になってそこまでかく必要ないと思うんだが。
んー、意地というか、質問さている事への答えですし・・・。それに、WordPress 使ってる方て、殆どの方がコア読まずに、ググってコピペ -> 動かねぇクソがっ ! ってパターンだと思うので。そういうの、少しでも減ってくれたらな・・・という、物凄く淡い期待も・・・。ググってコピペは別にいいんだけれども、ちゃんとコードの中身を理解した上でのググってコピペならね。
それに「そんな複雑なものでもないんだが」というのがツッコミが平然と来てしまうこのサイトのレベルもなんというか。知恵袋の延長線ですよね。
丁寧に説明頂きありがとうございます!方法2の方はなんとなくわかります。方法1の方は、じっくり調べてみれば理解できそうなのでいずれにせよもう少し、自分で調べてみないとですね。
みんなの回答 2 件
いろいろ方法はあるし、そもそもテーマによっても違うんだが。
例えばwp-content/languages/ja.po (ja.mo)
を書き換えれば手っ取り早く一括で変わる。(対応してるテーマなら)
しかし、コアの翻訳ファイルの書き換えなので更新ボタンを押したら書き換わってしまう。
(更新する時は自分でダウンロードして該当箇所を書き換えた後に手動で更新)
それが嫌であれば、テーマのテンプレートファイルの方で該当出力場所のソースを書き換えれば良い。
その辺の仕組みが理解できないのなら弄るのは微妙かもなあ。
◆方法 1
Walker_Comment クラスをオーバーライドし、comment メソッド、html5_comment メソッドを弄って、新しい Walker_Comment を作成する。wp_list_comments() の 引数 $args の walker に作成した Walker_Comment を指定する。
-----
◆方法 2
wp_list_comments() の 引数 $args の callback にコールバック先を指定。コールバック先の関数には $comment, $args, $depth という 3 つの値が渡るので、これを使って弄る。
関連するトピックス