2

I have a gallery at the top of my WordPress theme and the blog posts are below it. Each time I go to the next page it goes to the top which I don't want. I would like to add an anchor called #blog just below the gallery and add it to previous/next page links. Where in the code should I put #blog to make this work?

4

1 回答 1

2

您应该能够通过两次调整来做到这一点。第一个将创建锚点,第二个将调整链接以使用锚点。

锚点可以作为<a>具有name属性的标签或几乎任何具有id属性的标签来引用。我想说大多数 WordPress 主题已经有一个可以在#content. 导航到您的任何博客文章并查看源代码。在源代码中搜索id="content"并验证它是否存在。如果没有,请找到id您的实际帖子内容所在的位置,然后您可以使用该内容。如果找不到,则需要创建一个。

在您的 WordPress 主题文件中,查找名为single.php. 这通常是控制如何呈现单个帖子的文件。这是您将编辑以添加锚点(如有必要)和调整链接的文件。

如果您无法找到id要使用的内容(无论是“内容”还是其他任何内容),您将需要找到内容被调用以进行输出的位置,并将一个内容添加id到包裹在其周围的任何 HTML 标记中。

例如,我的文件的精简版本如下所示:

<div id="primary">
  <div id="content">
    <?php while ( have_posts() ) : the_post(); ?>
      <div class="entry-content">
       <?php the_content(); // this is your post content ?>
      </div><!-- .entry-content -->
    <?php endwhile; // end of the loop. ?>
  </div>
</div>

输出链接的方法有很多种,所以这取决于 WordPress 的主题和版本。在single.php文件中,查找与“next_post”和“previous_post”相关的函数。大多数用于创建链接的函数会自动<a>为您编写整个链接标记 ( ),因此无法截取链接并更改它。

您需要自己编写链接。下面的代码显示了如何获取信息和创建链接。它假定您将id="content"用作锚参考。

  <?php
  $prev_post = get_previous_post();
  if (!empty( $prev_post )): ?>
    <a href="<?php echo get_permalink( $prev_post->ID ); ?>#content"><?php echo $prev_post->post_title; ?></a>
  <?php endif; ?>

  <?php
  $next_post = get_next_post();
  if (!empty( $next_post )): ?>
    <a href="<?php echo get_permalink( $next_post->ID ); ?>#content"><?php echo $next_post->post_title; ?></a>
  <?php endif; ?>

这应该会创建您正在寻找的链接,这些链接会自动将页面跳过图像并跳转到帖子内容。

于 2012-11-14T06:59:39.877 回答