批量删除所有帖子内容,保留帖子本身

时间:2010-12-21 作者:Paul

如何使用PHP脚本或WordPress用一些静态文本(如“内容已删除”)覆盖所有帖子(永久性的,因此对数据库生效)?

2 个回复
SO网友:t31os

在您在备份或本地安装上对其进行测试并确认有效结果之前,请不要在活动站点上运行此功能。如果发生这种情况,我不会对丢失的数据承担任何责任。

要从PhpMyAdmin运行的SQL查询

UPDATE wp_posts SET post_content = \'your_content\' WHERE post_type = \'post\'
在插件或函数文件中使用(运行一次)

global $wpdb;
$my_update_query = $wpdb->get_result( "UPDATE $wpdb->posts SET post_content = \'your_content\' WHERE post_type = \'post\'" );

SO网友:goldenapples

如果需要进一步控制查询或替换函数,另一种选择是使用更多的WP API,如下所示:

$args = array(
    \'post_type\' => "post",
    \'numberposts\' => -1
    // additional arguments
    );

foreach ( get_posts( $args ) as $thispost )
    wp_update_post( array(
        \'ID\' => $thispost->ID,
        \'post_content\' => "your new content"
        )
    );
请记住,这比建议的SQL查询T31资源密集得多,因此如果要修改大量帖子,请谨慎使用。另请参见:How to apply content filter permanently?

结束