質問: comments_popup_link()が返すtitle属性を変更するにはどうすればいいですか? 次の関数のパラメータからcomment(s)を変更することでコメントのラベルを変更できます:comments_popup_link('no comments;', '1 comment;', '% comments;');しかし、title属性はコアモジュールから返されるようです。コアモジュールを編集せずにtitle属性を変更してください。
回答: 関数comments_popup_link()を調べると、最後に次のコードが表示されます。$title = the_title_attribute( array('echo' => 0 ) ); echo apply_filters( 'comments_popup_link_attributes', '' ); echo ' title="' . esc_attr( sprintf( __('comment on %s'), $title ) ) . '">'; comments_number( $zero, $one, $more ); echo '</a>'; // last line 翻訳関数__()の呼び出しに注意してください。結果を変更するために'gettext'をフィルタリングできます。私たちはすべての翻訳に対してフィルタを実行したくないので(遅すぎるので)、フック'comments_popup_link_attributes'が呼び出されたときにフィルタを開始します。add_filter( 'comments_popup_link_attributes', 't5_cclta_init' ); function t5_cclta_init( $attrs ) { add_filter( 'gettext', 't5_cclta_change_title', 10, 3 ); return $attrs; } 今、私たちは本当のフィルター関数だけを必要とします:function t5_cclta_change_title( $translated, $text, $domain ) { remove_filter( current_filter(), __function__, 10 ); if ( 'default' === $domain && 'comment on %s' === $text ) return 'talk about %s'; return $translated; } そして今、title属性はこう言います:the post titleについて話してください。