【问题标题】:Jump back in Wordpress loop to change something, possible?跳回 Wordpress 循环以更改某些内容,可能吗?
【发布时间】:2018-03-14 18:07:32
【问题描述】:

示例:

我们收到了一些不错的帖子,其中包含一个链接,可以通过向下滚动页面跳转到下一个帖子。无需重新加载、新标签或任何内容,只需简单的页面平滑滚动即可。

问题:

我们在一个 Wordpress 循环中,它从数据库中创建一些内容,并希望生成一个链接,该链接跳转到将由循环生成的下一个贯穿。在循环中,我们无法预测下一个帖子/产品将是什么,或者循环应该经历的任何帖子类型。那么我如何为链接提供正确的锚链接呢?

可能的解决方案:

也许我们可以将每次运行的数据存储在一个数组中? 也许我们应该创建一个只保存数据的第二个循环? 也许我应该在完成后使用 JS 重命名锚点...

【问题讨论】:

  • 您的问题至少应该包括您的循环的代码,这样我们才能正确地建议代码的位置/外观。

标签: php wordpress loops foreach


【解决方案1】:

您可以使用循环索引添加增量id,并将锚点分配给current index + 1。一个简单的例子:

<?php

global $wp_query;
$args = array(
    'post_type' => 'post'
);

$post_query = new WP_Query($args);

if($post_query->have_posts() ) {
  while($post_query->have_posts() ) {
    $post_query->the_post();
    $index = $wp_query->current_post + 1;

    ?>
    <div id="my_post_<?php echo $index; ?>"><?php the_title(); ?></div>
    <?php 
       if (($wp_query->current_post +1) <= ($wp_query->post_count)) {
          echo '<a href="#my_post_<?php echo $index + 1; ?>">Next post</a>';   
       }
    ?>   
  }
}
?>

【讨论】:

  • 这将起作用,除了最后一篇文章,它的链接无处可去....
  • 您可以检查当前帖子是否是最后一个帖子,在这种情况下不要创建链接。请参阅我的更新答案。
  • 同意。我确实更喜欢&lt;= 而不是!=,它更安全一些。
猜你喜欢
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 2017-03-28
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 2014-02-06
相关资源
最近更新 更多