如何在导入后强制更新所有帖子

时间:2018-02-20 作者:AlexPTY

我最近将大量自定义帖子导入wordpress。除了导入了一个分类法外,所有分类法都可以正常工作,但在我单击每篇文章的“更新”按钮之前,它不会显示在前端。我有810个帖子,这不是一个解决方案。。。

我认为这应该是运行MYSQL命令强制所有后期更新而不做任何更改的方式。请帮助我使用命令,我搜索了插件,但找不到任何合适的插件

非常感谢。

3 个回复
SO网友:Clinton

有两种方法可以做到这一点。第一个也是更难的是编写程序,另一个是进行批量更新。当简单的方法同样有效时,为什么要困难呢?尤其是因为这是一次性要求

简单的方法:

在管理仪表板中,为自定义类型选择包含所有帖子的视图选择所有帖子(勾选它们)-单击视图右上角的“屏幕选项”并增加每页的项目数,可以查看更多帖子单击“批量操作”旁边的向下箭头,然后选择“编辑”并按“应用”-您将获得一个包含可以进行的更改选择的屏幕更改,如添加标签或更改作者(无论什么)

  • 按应该执行的“更新”。

    “困难”的方式:

    如果有人想使用代码解决方案,可以将下面的代码添加到函数中。子主题中的php文件。

    function my_update_posts() {
        //$myposts = get_posts(\'showposts=-1\');//Retrieve the posts you are targeting
        $args = array(
            \'post_type\' => \'post\',
            \'numberposts\' => -1
        );
        $myposts = get_posts($args);
        foreach ($myposts as $mypost){
            $mypost->post_title = $mypost->post_title.\'\';
            wp_update_post( $mypost );
        }
    }
    add_action( \'wp_loaded\', \'my_update_posts\' );
    
    记住只运行一次,然后删除它或注释掉add\\u操作行,否则每次加载新页面时它都会运行。

    我包括了这个选项,以防任何人想要一个开始模板来更新所有帖子标题或所有帖子中的其他属性。

  • SO网友:Maxim Sarandi

    第一:使用get_postsWP_Query.

    $query_posts = new WP_Query( array(
        \'nopaging\' => true,
    ) );
    
    第二:为帖子和使用做循环wp_update_post() 对于每个post和set ID参数。

    while ( $query_posts->have_posts() ) :
        $query_posts->the_post();
        wp_update_post( array(
            \'ID\' => get_the_ID(),
            \'post_content\' => get_the_content(),
        ) );
    endwhile;
    
    将此代码置于初始化操作或页眉/页脚。更新页面一次并删除代码。将此代码放入functions.php 您的所有帖子都将在页面重新加载时更新。

    add_action( \'init\', function () {
        $query_posts = new WP_Query( array(
            \'nopaging\' => true,
        ) );
    
        while ( $query_posts->have_posts() ) :
            $query_posts->the_post();
            wp_update_post( $post );
        endwhile;
        wp_reset_postdata();
    } );
    

    SO网友:Rol

    对于任何未来感兴趣的人:要逐个批量更新帖子,您可以使用chrome extension web Scraper,它将自动在每篇帖子上的更新按钮上执行clics。

    结束

    相关推荐

    如何在MySQL中写入更多USER_NICENAME字符

    我在网站上安装了该插件,以进行俄语注册(允许西里尔文用户名),现在我需要在sql数据库中的wp\\u users表中的user\\u nicename permission列中更改,以写入更多字符,默认值为50到255。如何做到这一点?已尝试,但无效:ALTER TABLE wp\\U users ALTER COLUMN user\\U nicename varchar(200)not NULL-错误更改表格wp_users 改变user_nicename user_nicename VARCHAR(2