要在多篇帖子上执行此操作,您可以选择
将更新的“where”子句写为SQL“IN”,例如使用the answer here - 这将为每个帖子使用相同的新生成密码添加循环,并为每个帖子分别调用$wpdb->update-这将为每个帖子创建新密码或使用相同的密码,具体取决于编写循环的方式
$slugs = array(\'page-one\',\'page-two\',\'page-three\',\'page-four\',\'page-five\');
global $wpdb;
foreach( $slugs as $slug ) {
// This bit as before
$wpdb->update(
$wpdb->posts,
array( \'post_password\' => uniqid() ),
array( \'post_name\' => $slug ),
array( \'%s\' ),
array( \'%s\' )
);
}
只需直接在SQL中执行此操作即可?
UPDATE wp_posts
SET post_password = \'....\'
WHERE post_name IN (\'page-one\',\'page-two\',\'page-three\',\'page-four\',\'page-five\');
我认为这是迄今为止最简单的方法,但如果您没有信心,显然可以先进行数据库备份。你必须在这里以某种方式生成自己的密码,而其他方法会自动为你生成一些随机的密码。