あさまテーマのマーク

「あさま」のあすにむかってうっ…まあいいか(その5)

バグを発見しました。

まだあったとは、驚きです。でも、実害には至らないはずです。

何の気なしに、自分の「hustlemouse.com」ブログサイトを眺めていたら、開いたメインメニューの「home.」のリンクが生きていない?

「あれ?ここってトップページでないよね?なんで?」

メイン投稿ページの「2ページ」目以降では、「home.」のリンクが切れていたのです。

ちょっとだけ慌てたのですが、一緒に並んでいるパン屑リストはちゃんと動作しています。パン屑リストも自作のショートコード(BreadCrumb.php)です。

確認してみたら、おなしようなことをしているけど、ショートコードの方が少し手が混んでいる。

冷静になってみれば、ショートコードで試行錯誤した時に、メインメニューのことをすっかり忘れていただけなんでした。いや情けなや。

最新のあさまテーマをご利用であれば、親テーマフォルダー「asama」内の「./include/parts/sticky-menu.php」を差し替えるだけです。

備忘のため、まずは古いコードです。(「sticky-menu.php」の10から14行目)

<?php if(is_front_page()): ?>
 <li class='home'><?php echo $home; ?></li>
<?php else: ?>
 <li class='home'><a href='<?php echo esc_url(home_url()); ?>'><?php echo $home; ?></a></li>
<?php endif; ?>

新しいコードです。(「sticky-menu.php」の10から18行目)

<?php if(is_front_page()):
 if(is_home() && get_query_var('paged')>0): ?>
  <li class='home'><a href='<?php echo esc_url(home_url()); ?>'><?php echo $home; ?></a></li>
 <?php else: ?>
  <li class='home'><?php echo $home; ?></li>
 <?php endif;
else: ?>
	<li class='home'><a href='<?php echo esc_url(home_url()); ?>'><?php echo $home; ?></a></li>
<?php endif; ?>

古いコードは「is_front_page()」だけで振り分けてました。

WordPressで固定ページをトップページにしている場合は、問題はありません。

投稿ページをトップページにしている場合は、「メイン投稿ページ」の全部で「is_front_page()」が「true」になってしまいます。

という訳で、「BreadCrumb.php」と同じく、新たにもう一つ「条件」をかましました。

「is_home()」でメイン投稿ページであることを確認して、「get_query_var(‘paged’)」でページの送り番号を取得して「0」より大きいことを確認してます。

前者で固定ページがトップページと、追加投稿ページのケースが蹴られます。

後者でトップページのケースが蹴られます。

それを論理和してあげれば、条件式の出来上がりです。

「もう一月以上も投稿してないなあ。なんかネタないかなあ。」と思っていたら、本当に降ってきました。

「求めよされば得られん。」だけど少し残念です。そかさ。