Update wp_query every week

时间:2019-10-20 作者:user5710

我想要达到的目标:我的主页显示了5个不同类别中的3篇随机帖子。那部分很简单。

这有点独特,我不太清楚如何完成,我希望这些帖子每周都能自动更改。

这样,如果用户在一周内回来几次,他们会看到相同的帖子,但每周都应该更新查询,使其看起来像是添加了一堆新内容(或者至少现在显示了以前编写的内容)。

我该怎么做呢?谢谢

2 个回复
SO网友:Кристиян Кацаров

我看到两种方法:通过cron作业。。。或持续1周的网站/页面缓存。

如果要执行缓存选项:只需添加\'orderby\' => \'rand\' 到您的WP_Query 并为您的页面安装缓存插件,然后将其设置为1周。

CronJob:您需要设置一个每周开始的脚本。为此,您需要为WordPress设置cron作业-https://www.siteground.com/tutorials/wordpress/real-cron-job/, 然后在wp_schedule_event 您可以创建每周任务来更新帖子。

SO网友:Hendrik Vlaanderen

缓存和cronjob之间的一个很好的中间方法是使用transients

您可以编写一个小函数来处理瞬态的设置和获取。

$posts = get_transient( \'recent_posts\' );
if ( false == $posts ) :
$posts = new WP_Query( array (
  \'orderby\' => \'rand\',
  \'fields\' => \'ids\'
));
set_transient( \'recent_posts\', $posts, 60*60*12 );
endif;
return $posts;
在瞬态中,您将之前调用的帖子的ID存储在WP\\U查询中。然后设置一周的瞬态到期时间,函数只检查是否已经存在瞬态。如果没有,请使用随机贴子ID创建一个瞬态。

代码没有经过测试,它只是一个如何使用它的示例。让我知道进展如何!

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post