2

我有一个 Wordpress 安装,其中包含数千个页面,这些页面都是公开的,我需要将其设为私有。我无法使用插件来帮助我;我需要使用 Wordpress 内置的 Public/Protected/Private 范例来完成。

理想情况下,我会在数据库的 SQL 导出上运行搜索和替换。或者,我愿意编写一个 PHP 脚本来处理它。

手动将所有页面设为私有不是一种选择 - 我正在寻找一种程序化方法来处理这个问题。

任何人都可以帮忙吗?

4

3 回答 3

7

只需在数据库中将它们设置为私有,使用以下查询:

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';

后修订具有“继承”状态,因此从父页面或文章中继承了权利。

于 2013-04-25T08:30:14.127 回答
1

正如 Feeela 所说:您可以直接在表上运行查询,也可以使用 WP 功能,例如:

使用have_postthe_post

    $my_posts['ID'] = get_the_ID();
    $my_posts['post_status']  = 'private';
    $my_posts['post_type'] = 'page';
    wp_update_post( $my_post );
于 2013-04-25T08:35:57.657 回答
0
UPDATE `wp_posts` SET `post_status` = 'private' WHERE `post_type`='page';

此查询只会将页面设置为私有

于 2013-04-25T08:34:49.763 回答