这里有几件事你应该注意。
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');
}