Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 你能在没有插件的情况下让所有Wordpress页面同时私有吗?_Php_Mysql_Wordpress - Fatal编程技术网

Php 你能在没有插件的情况下让所有Wordpress页面同时私有吗?

Php 你能在没有插件的情况下让所有Wordpress页面同时私有吗?,php,mysql,wordpress,Php,Mysql,Wordpress,我有一个Wordpress安装,有数千个页面都是公开的,我需要将其私有化。我不能使用插件来帮助我;我需要使用Wordpress内置的公共/保护/私有模式来完成 理想情况下,我会在数据库的SQL导出上运行搜索和替换。或者,我愿意编写一个PHP脚本来处理它 这不是一个选项,使所有的页面私人手动-我正在寻找一个编程方法来处理这个问题 有人能帮忙吗?只需使用以下查询在数据库中将它们设置为private: UPDATE `wp_posts` SET `post_status` = 'private';

我有一个Wordpress安装,有数千个页面都是公开的,我需要将其私有化。我不能使用插件来帮助我;我需要使用Wordpress内置的公共/保护/私有模式来完成

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

这不是一个选项,使所有的页面私人手动-我正在寻找一个编程方法来处理这个问题


有人能帮忙吗?

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

UPDATE `wp_posts` SET `post_status` = 'private';
这会将所有帖子设置为private,我想您不会真正使用该查询

相反,要仅将项目设置为“专用”,请执行以下操作:

UPDATE `wp_posts` SET `post_status` = 'private' WHERE `post_type` = 'post';
要仅禁用页面,请使用:

UPDATE `wp_posts` SET `post_status` = 'private' WHERE `post_type` = 'page';
后期修订的状态为“继承”,因此获得从父页面或文章继承的权利

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

有没有这样的方法可以在不编辑页面“状态”的情况下编辑页面的“可见性”?()@Khior我想也是这样。我曾尝试在后端将文章从“public”设置为“private”,并在数据库中切换状态。确切地知道可见性是如何设置的(两者之间的数据必须有所区别)会很好,但status方法对我来说是可行的。谢谢=)