【问题标题】:Wordpress orderby in query rendering same postsWordpress orderby 在查询中呈现相同的帖子
【发布时间】:2023-03-26 18:01:01
【问题描述】:

我正在尝试循环浏览帖子并在每次点击页面时生成一些不同的帖子。我以前使用过这个完全相同的过程,它总是运行良好,但由于某种原因,在这个站点上它的行为不同。它将加载随机帖子,但只是第一次。换句话说,它以分散的顺序加载它们,但每次都以相同的顺序加载相同的帖子。相反,我希望它在每个页面被点击时加载完全不同的帖子。我不知道这是怎么回事!我已经测试过插件和主题,没有运气。有任何想法吗?

<?php
$args = array(
    'post_type' => 'post',
    'orderby' => 'rand',
    'posts_per_page' => 5
    );

$wp_query = new WP_query($args);
while(have_posts() ) : the_post();

?>
    <h1><?php the_title(); ?></h1>
<?php 
    endwhile; 
    wp_reset_query(); 
?>

【问题讨论】:

  • 更新:我从 wordpress 安装中提取了相同的代码位并在本地安装上运行它并且它工作正常 - 所以插件和主题之外的任何想法可能会干扰 orderby 功能?
  • 尝试禁用插件,并改成wordpress困难主题并检查。

标签: php wordpress loops sql-order-by


【解决方案1】:

任何已安装的主题或插件都可能使用了 orderby,因此当您用于自己的查询时,请先尝试将其删除。

<?php
    remove_all_filters('posts_orderby'); //Reset orderby filters
    $args = array(
        'post_type' => 'post',
        'orderby' => 'rand',
        'posts_per_page' => 5
        );

    $wp_query = new WP_query($args);
    while(have_posts() ) : the_post();

    ?>
        <h1><?php the_title(); ?></h1>
    <?php 
        endwhile; 
        wp_reset_query(); 
    ?>

【讨论】:

  • 感谢您的推荐 - 我之前试过这个,今天早上仔细检查过,没有运气。即使在重置过滤器后仍然有同样的问题。对我来说很奇怪,它确实随机获取帖子,但它不会改变重新加载时获得的帖子。
猜你喜欢
  • 2013-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多