列出页面上的所有锚点链接

时间:2014-02-14 作者:asemahle

我试图创建一个页面上所有锚链接的导航菜单(类似于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”类别的所有帖子。在这个页面上,我希望有一个指向所有帖子的锚链接列表(稍后我会将这些链接移动到固定的侧栏,以便于导航)。

任何帮助都将不胜感激

2 个回复
最合适的回答,由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() 重置内部计数器

SO网友:emmamin

我还想知道如何将锚合并到我的wp\\u查询循环中。谢默斯的上述代码非常优秀,但我必须为<div id="#post-<?php the_ID(); ?>"> 确保其正常工作。

结束

相关推荐

如何使用PHP创建编号列表?

今天早上我的功能有点困难!这并不是特别的WP(更多PHP),但我认为它将在未来对WP开发人员有益,所以我在这里提问。我正在尝试创建一个列表,其功能如下:$items = get_post_meta($post->ID, \"item-specific-meta\"); $output = \'\'; foreach ($items as $item){ $item_id = $item[#] <--I WANT THIS TO BE A NUMBER $