我有一个 Wordpress 安装,其中包含数千个页面,这些页面都是公开的,我需要将其设为私有。我无法使用插件来帮助我;我需要使用 Wordpress 内置的 Public/Protected/Private 范例来完成。
理想情况下,我会在数据库的 SQL 导出上运行搜索和替换。或者,我愿意编写一个 PHP 脚本来处理它。
手动将所有页面设为私有不是一种选择 - 我正在寻找一种程序化方法来处理这个问题。
任何人都可以帮忙吗?
只需在数据库中将它们设置为私有,使用以下查询:
UPDATE `wp_posts` SET `post_status` = 'private';
这会将所有帖子设置为私有,我猜您不会真正使用该查询。
相反,仅将文章设置为“私人”使用:
UPDATE `wp_posts` SET `post_status` = 'private' WHERE `post_type` = 'post';
并且只禁用页面,使用:
UPDATE `wp_posts` SET `post_status` = 'private' WHERE `post_type` = 'page';
后修订具有“继承”状态,因此从父页面或文章中继承了权利。
正如 Feeela 所说:您可以直接在表上运行查询,也可以使用 WP 功能,例如:
使用have_post
和the_post
$my_posts['ID'] = get_the_ID();
$my_posts['post_status'] = 'private';
$my_posts['post_type'] = 'page';
wp_update_post( $my_post );
UPDATE `wp_posts` SET `post_status` = 'private' WHERE `post_type`='page';
此查询只会将页面设置为私有