ここで注意すべき点がいくつかあります。
1) コードの途中にセミコロンがあります:
echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true); . '">' . the_title(); . '</a></li>';
// Should be:
echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true) . '">' . the_title() . '</a></li>';
2)endforeach
「代替」構文を使用しています:
別の PHP 構文は可能な限り避けるべきです。これは、標準と可読性のためであり、コードを読まなければならない次の人があなたを追い詰めて錆びたナイフで刺すのを防ぐためです。
これらの構文は「代替」であるため、これらが操作を実行するための推奨される方法ではないと安全に想定できます。それらは機能し、現在この機能を非推奨にする計画はありませんが、PHP が制御不能な方法論に巻き込まれ始めているため、長期的には期待できません。
foreach( $how_posts as $post ) :
// Should be:
foreach( $how_posts as $post ) {
and
endforeach;
// Should be:
}
例:
<?php
foreach($how_posts as $post) {
setup_postdata($post);
echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true) . '">' . the_title() . '</a></li>';
$nav_items[] = html_entity_decode(get_the_title(), ENT_QUOTES, 'UTF-8');
}