Wordpress查询随机发布每X小时

时间:2014-01-06 07:02:59

标签: wordpress wordpress-theming

我是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>

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。以下是一些选项:

  1. 在指定的帖子(自定义或其他方式)中,添加一些额外的元数据 - 您可以存储4个随机帖子的结果ID(例如:metaname:'dailyrand'值:'44,55,11,23 “)。您可以在每次运行时检查上次更新此特定帖子的时间和日期。一旦时间和日期在最后一次编辑后达到24小时,用新生成的随机帖子ID覆盖元值。如果还不是24小时,请撤回存储的帖子ID并显示。当然,如果帖子数据由于某些其他原因而发生变化,它可能会以错误的间隔刷新 - 也许最好还设置一个时间和日期元数据来更新,而不是依赖于实际的帖子更新时间。 / p>

  2. 使用几个字段(dailyrand,recordtime,postids等)在数据库中创建一个表,基本上做同样的事情。自上次更新表格后每次检查24小时,然后冲洗并重复。

  3. 获取一些插件或小部件为您完成。 :)这是一个:http://wordpress.org/plugins/static-random-posts-widget/ - 看起来好像已经有一段时间了。

  4. 当然,有些人可能认为这些是可怕的想法 - 只是提供一些快速的建议,因为还没有人评论过。