平台开发中,欢迎参与测试。你可以在 QQ群:1046115671 中与我们交流,或是直接在社区发帖。
  • 孙锡源
    管理员

    把以下代码放到主题的 functions.php 文件里,然后随便访问一个网页,就对所有文章触发更新操作了。更新完记得删掉这段代码。

    function update_all_posts() {
        $args = array(
            'post_type' => 'post',
            'numberposts' => -1
        );
        $all_posts = get_posts($args);
        foreach ($all_posts as $single_post){
            $single_post->post_title = $single_post->post_title.'';
            wp_update_post( $single_post );
        }
    }
    add_action( 'wp_loaded', 'update_all_posts' );

    如果你的文章数量很多的话需要改一下 PHP 的最大执行时间。

  • 孙锡源
    管理员

    如果需要按文章发布日期升序更新的话(也就是先更老文章),将代码改成如下即可:

    function update_all_posts() {
        $args = array(
            'post_type' => 'post',
            'numberposts' => -1,
            'orderby' => 'post_date',
            'order' => 'ASC',
        );
        $all_posts = get_posts($args);
        foreach ($all_posts as $single_post){
            $single_post->post_title = $single_post->post_title.'';
            wp_update_post( $single_post );
        }
    }
    add_action( 'wp_loaded', 'update_all_posts' );

    老实说,我非常不理解你这个需求,甚至于感觉匪夷所思。我无法理解为什么文章的更新时间会影响文章的顺序,但是还是按你的需求修改了一下代码。

  • 孙锡源
    管理员

    开 Debug 模式,把报错日志贴一下,我刚测试了一下,没发现问题

  • 正在查看 3 条回复
    • 哎呀,回复话题必需登录。