Functions.phpの中にタイトルのための関数を作成しようとしています。検索タイトル部分に問題があります。ここで問題となる部分を連結する必要があります。
elseif (is_search()) {
_e('Search for ', 'textdomain') . '"' . esc_html(the_search_quey()) . '$quot; - '; }
これは、このようなタイトルを与えます:searchtermsitenameの検索
サイト名には引用符と検索用語は付けられません。
私はこれを試しました:
elseif (is_search()) {
_e('Search for ' . '"' . esc_html(the_search_quey()) . '$quot; - ', 'textdomain'); }
これも動作しない、これは出力: "" sitenameの "searchtermSearch"
それは最初のものよりも優れていますが、彼は検索クエリが以前であり、そしてなぜその理由を理解することができません。
それでどんな助けでも、そして前もって感謝します。
the_search_query()
は自分自身をエコーするので、それを別のエコー関数(_e()
とは何ですか)に入れることで、2番目の例のようになります。
L18n関数内で変数や関数を使用することはお勧めできません。それらは翻訳できないからです。詳しくはOtto'sを参照してください。 国際化:おそらく間違っています .
だからあなたはこのようなコードを使用する必要があります:
printf( __( 'Seach for "%s", 'textdomain' ), get_search_query() );
私はget_search_query()
を使っていることに注意してください。なぜならそれは単にエコーする代わりに値を返すだけでなく、esc_attr()
を通してクエリ文字列を渡し、esc_html()
を必要としないからです。
重要なのは、sprintf
またはprintf
関数と組み合わせて%s
プレースホルダーを使用することです。
printf(__('Search for “%s”', 'textdomain'), esc_html(get_search_query());
また、the_search_query()
はその結果を直接出力するので、get_search_query()
whichが結果を返す必要があります。