【问题标题】:Save a database query and update it automatically every X hours. Wordpress保存数据库查询并每 X 小时自动更新一次。 WordPress
【发布时间】:2016-09-12 09:54:12
【问题描述】:

我是初学者,我需要一些帮助来优化我的“所有帖子”页面。

我有一个页面,其中包含我所有已发布的帖子 (300+)。我用这段代码显示它们:

while ( $the_query->have_posts() ) : $the_query->the_post(); ?> 
    <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">
    <?php the_title();?></a>
        <?php 
            global $wpdb;
            $postid = $post->ID;
            $postTit = $wpdb->get_var( "SELECT posttitle FROM wp_posts WHERE ID=" . $postid);
            echo "{$postTit}";
        ?>
    <div class="comments">
        <?php 
            global $wpdb;
            $postid = $post->ID;
            $commCount = $wpdb->get_var( "SELECT comment_count FROM wp2_posts WHERE ID=" . $postid);
            echo "{$commCount }";
        ?>
    </div>
<?php endwhile;

问题是:

我正在考虑“存储”查询并每小时更新一次。我试图用谷歌搜索一些关于它的东西,但没有成功。如果有人能告诉我至少需要搜索什么,我将不胜感激,因为我是这类事情的初学者。

(抱歉英语不好)

编辑 1

你们认为使用 PHP 将数据从 MySQL 转换为 JSON 并每小时更新一次是个好主意吗?

【问题讨论】:

    标签: php mysql database wordpress store


    【解决方案1】:

    您可以使用wp_cron() 功能进行自动保存和更新:

    if ( ! wp_next_scheduled( 'my_task_hook' ) ) {
      wp_schedule_event( time(), 'hourly', 'my_task_hook' );
    }
    
    add_action( 'my_task_hook', 'my_task_function' );
    function my_task_function() {
      wp_mail( 'your@email.com', 'Automatic email', 'Automatic scheduled email from WordPress.');
    }
    

    您需要根据自己的需要对其进行调整。

    【讨论】:

    • 我现在不在家,等我回来,我会进一步了解 wp_cron() 并告诉你。谢谢:)
    • 不客气……慢慢来,随心所欲:)
    • 我尝试阅读有关 wp_cron 的内容,我可以说这不是最好的方法,而且似乎很难做到:(
    • wp_cron 主要用于几乎所有备份插件和其他需要与时间或网站访问相关的自动化任务的插件......另一种方法是使用主机服务器的 cron 在您的wordpress 网站
    • 也许我找到了正确使用 wp_cron() 的方法,明天我会告诉你它是否有效 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 2017-12-03
    相关资源
    最近更新 更多