// やりたいこと
wordpressのユーザー定義関数で英語のタイトル($name_en)を作り、
オリジナルテンプレートでそれぞれを出力したいと思っています。
// 意図しない出力
tagページ(categoryページも同様)において意図しない出力をしてしまいます。
※理由はわかりませんが原因が分かりましたので、追記しました。
▼function.php
PHP
1//条件分岐 2function tit($tit){ 3if (is_category()) { 4 $name_en = 'category'; 5 } elseif (is_tag()) { 6 $name_en = 'tag'; 7 } else { 8 $name_en = 'hoge'; 9 } 10//定義 11if ($tit == 'en') { 12 echo $name_en; 13 } 14}
▼archive.php
php
1<h2><?php tit('en'); ?></h2>
▼「ほげ」のタグ一覧ページ
HTML
1<h2>ほげtag</h2>
▼「ホゲホゲ」のタグ一覧ページ
HTML
1<h2>ホゲホゲtag</h2>
本来であれば<h2>tag</h2>と表示されるべきですが、
なぜかタグの名前+tagと表示されてしまいます。
///02/22追記
理由はわからないのですが、
英語のタイトル($name_en)と一緒に作成していた日本語のタイトル($name_jp)が
同じ条件分岐であったため競合しているようでした
×タグの名前+tagと表示→○$name_enしか出力していないのに$name_jp+$name_enと表示
▼改善前
▼function.php
PHP
1//条件分岐 2function tit($tit){ 3//英語 4if (is_category()) { 5 $name_en = 'category'; 6 } elseif (is_tag()) { 7 $name_en = 'tag'; 8 } else { 9 $name_en = 'hoge'; 10 } 11//日本語 12if (is_category()) { 13 $name_jp = 'カテゴリー'; 14 } elseif (is_tag()) { 15 $name_jp = 'タグ'; 16 } else { 17 $name_jp = 'ほげ'; 18 } 19//定義 20if ($tit == 'en') { 21 echo $name_en; 22 } 23if ($tit == 'jp') { 24 echo $name_jp; 25 } 26}
日本語の設定をif ($tit == 'jp') {内に入れたら問題なく動作しました。
▼改善前
▼function.php
PHP
1//条件分岐 2function tit($tit){ 3//英語 4if (is_category()) { 5 $name_en = 'category'; 6 } elseif (is_tag()) { 7 $name_en = 'tag'; 8 } else { 9 $name_en = 'hoge'; 10 } 11//定義 12if ($tit == 'en') { 13 echo $name_en; 14 } 15if ($tit == 'jp') { 16//日本語 17if (is_category()) { 18 $name_jp = 'カテゴリー'; 19 } elseif (is_tag()) { 20 $name_jp = 'タグ'; 21 } else { 22 $name_jp = 'ほげ'; 23 } 24 echo $name_jp; 25 } 26}
理由がわかれば教えてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/22 06:04