何らかの理由でis_front_page
が私のサブサイトで起動されず、Readingの下で静的なホームページとして設定されたページを持つ独自のヘッダを持つ子テーマを実行します。
このコードをheader.php
に入れて、投稿/ページまたはフロントページに表示するメタタグを制御しますが、is_single
/is_page
のみが出力されます。
<?php if (is_single() || is_page()) : if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- this is printed -->
<?php endwhile; endif; elseif(is_home() || is_front_page()) : ?>
<!--this is not printed -->
<?php endif; ?>
is_page
とis_front_page
は、静的フロントページを使用しているときはどちらも正しいので、相殺されているのでしょうか。
確かに、あなたのサイトが前面に静的なページを持っているなら、条件is_page
は真となり、WPは決してelseif
に到達しません。
フロントページに別のテンプレートを使用する場合は、最初の条件から除外して、その場合はfalseを返すようにしてください。このような:
if ((is_single() || is_page()) && !is_front_page())
あるいは、文を切り替えることもできます。最初にhome/frontをテストし、それがsingle/pageに対して失敗した場合。