我试图创建一个页面上所有锚链接的导航菜单(类似于wikipedia),但找不到方法。我试图找到一个插件可以做到这一点,但他们只列出了一篇文章的锚。
我用以下代码创建了一个自定义页面:
get_header(); ?>
<main id="content" class="site-content" role="main">
<?php query_posts(\'category_name=Artemis-Header\'); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; // end of the loop. ?>
<?php query_posts(\'category_name=Artemis\'); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( \'content\', \'page\' ); ?>
<?php comments_template( \'\', true ); ?>
<?php endwhile; // end of the loop. ?>
</main><!-- #content .site-content -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
它显示一个标题,后面是属于“Artemis”类别的所有帖子。在这个页面上,我希望有一个指向所有帖子的锚链接列表(稍后我会将这些链接移动到固定的侧栏,以便于导航)。
任何帮助都将不胜感激
最合适的回答,由SO网友:Seamus Leahy 整理而成
简而言之,您将运行两次循环。第一次创建链接。第二次创建帖子。诀窍是找出帖子的ID。它需要一些独特的东西:我们可以使用slug或post ID。
<?php
// I\'m going to get the posts only once, but then loop through them twice
$query = new WP_Query( \'category_name=Artemis\' );
?>
<?php // Create the links ?>
<ol>
<?php while( $query->have_posts() ): $query->the_post(); ?>
<li><a href="#post-<?php the_ID(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ol>
<?php // Now show the posts ?>
<?php
$query->rewind_posts(); // Reset the pointer to the start
while( $query->have_posts() ): $query->the_post(); ?>
<div id="#post-<?php the_ID(); ?>">
<?php // code to display the content of the post here
</div>
<?php endwhile; ?>
我们创建了一个可重用的
WP_Query
对象
id
我们添加到帖子并链接到is模式
post-[post_ID]
3我们循环查询两次,一次用于链接,另一次用于内容记住调用
rewind_posts()
重置内部计数器