バグを発見しました。
まだあったとは、驚きです。でも、実害には至らないはずです。
何の気なしに、自分の「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」より大きいことを確認してます。
前者で固定ページがトップページと、追加投稿ページのケースが蹴られます。
後者でトップページのケースが蹴られます。
それを論理和してあげれば、条件式の出来上がりです。
数日ほど、動作確認しましたが、大丈夫そうです。
一応、バージョンを進めて「0.3.7」といたしました。
「もう一月以上も投稿してないなあ。なんかネタないかなあ。」と思っていたら、本当に降ってきました。
「求めよされば得られん。」だけど少し残念です。そかさ。