Wordpress查询每X小时随机发布一次

Wordpress查询每X小时随机发布一次,wordpress,wordpress-theming,Wordpress,Wordpress Theming,我对PHP相当陌生,所以如果这是一个愚蠢的问题,请原谅。我正在为一个客户构建一个WP主题,我已经为一个“随机帖子”部分获得了基本功能,但是有一个因素我自己无法弄清楚 它是一种自定义的post类型,也使用自定义字段。功能是,此帖子类型中的4篇帖子随机显示所需信息 现在:我能够自己解决这个问题,但是随机的4篇帖子让我感到困惑。客户端请求“随机”特性仅每24小时发生一次,而不是每次重新加载页面时 所以基本上。。。如何更改现有查询,使其仅每24小时更改一次输出,而不是每次加载页面 请参阅下面我的现有代码

我对PHP相当陌生,所以如果这是一个愚蠢的问题,请原谅。我正在为一个客户构建一个WP主题,我已经为一个“随机帖子”部分获得了基本功能,但是有一个因素我自己无法弄清楚

它是一种自定义的post类型,也使用自定义字段。功能是,此帖子类型中的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>

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

  • 在指定的帖子(自定义或其他)中,添加一些额外的元数据-您可以存储4篇随机帖子的结果ID(例如:metaname:'dailyrand'value:'44,55,11,23')。你会让你的日常检查的时间和日期,最后一次更新这个特定的职位,每次运行。当时间和日期达到上次编辑后的24小时后,使用新生成的随机帖子ID覆盖元值。如果还不是24小时,请撤回存储的post ID并显示。当然,如果post数据由于其他原因发生更改,它可能会以错误的时间间隔刷新-也许最好也设置一个要更新的时间和日期元标记,而不是依赖于实际的post更新时间

  • 在数据库中创建一个包含几个字段(dailyrand、recordtime、postid等)的表,并执行基本相同的操作。自上次更新表后24小时内,每次检查一次,然后冲洗并重复

  • 找一些插件或小部件来帮你做这件事。:)这里有一个:-它看起来已经有一段时间没有更新了

  • 当然,有些人可能会认为这些想法很糟糕——只是提供一些快速的建议,因为目前还没有人对此发表评论