你可以在没有插件的情况下同时将所有Wordpress页面私有化吗?

时间:2013-04-25 08:24:15

标签: php mysql wordpress

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

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

不能手动将所有页面设为私有 - 我正在寻找一种处理此问题的编程方法。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:6)

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

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

修订后的状态为“inherit”,从而获得从父页面或文章继承的权利。

答案 1 :(得分: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 );

答案 2 :(得分:0)

UPDATE `wp_posts` SET `post_status` = 'private' WHERE `post_type`='page';

此查询仅将页面设置为私有