如何使用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?结束