我是PHP的新手,请原谅我,如果这看起来像一个愚蠢的问题。我正在为客户构建一个WP主题,我已经为“随机帖子”部分提供了基本功能,但有一个因素我无法为自己弄清楚。
这是一种自定义帖子类型,也使用自定义字段。该功能是来自此帖子类型的4个帖子随机显示所需信息。
现在:我能够自己解决这个问题,但随机的4个帖子是我难倒的地方。客户端请求“随机”方面仅每24小时发生一次,而不是每次重新加载页面时。
基本上......我如何改变我现有的查询,以便它每24小时更改一次输出,而不是每次加载页面?
请参阅下面的现有代码:
<ul>
<?php query_posts("post_type=chapter&orderby=rand&posts_per_page=4");?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<div class="authors">
<a href="<?php the_permalink();?>"><img src="<?php
$post_object = get_field('article_author');
if( $post_object ):
// override $post
$post = $post_object;
setup_postdata( $post );
the_field("profile_image");
$first=get_field("first_name");
$last=get_field("last_name");
endif;
wp_reset_postdata();
?>"></a>
<div class="author-name-home"><?php the_title();?></div>
<div class="author-title-home"><?php echo $first;?> <?php echo $last;?></div>
</div>
</li>
<?php endwhile; endif; wp_reset_query(); ?>
</ul>
答案 0 :(得分:0)
有几种方法可以做到这一点。以下是一些选项:
在指定的帖子(自定义或其他方式)中,添加一些额外的元数据 - 您可以存储4个随机帖子的结果ID(例如:metaname:'dailyrand'值:'44,55,11,23 “)。您可以在每次运行时检查上次更新此特定帖子的时间和日期。一旦时间和日期在最后一次编辑后达到24小时,用新生成的随机帖子ID覆盖元值。如果还不是24小时,请撤回存储的帖子ID并显示。当然,如果帖子数据由于某些其他原因而发生变化,它可能会以错误的间隔刷新 - 也许最好还设置一个时间和日期元数据来更新,而不是依赖于实际的帖子更新时间。 / p>
使用几个字段(dailyrand,recordtime,postids等)在数据库中创建一个表,基本上做同样的事情。自上次更新表格后每次检查24小时,然后冲洗并重复。
获取一些插件或小部件为您完成。 :)这是一个:http://wordpress.org/plugins/static-random-posts-widget/ - 看起来好像已经有一段时间了。
当然,有些人可能认为这些是可怕的想法 - 只是提供一些快速的建议,因为还没有人评论过。