2013-04-25 39 views
1

我有一個Wordpress安裝,有成千上萬的頁面,都是公開的,我需要將它們私有。我無法使用插件來幫助我;我需要使用內置公共/受保護/私有範例的Wordpress來完成。您是否可以在不使用插件的情況下同時使所有的Wordpress頁面保密?

理想情況下,我會運行搜索並替換數據庫的SQL導出。或者,我會願意編寫一個PHP腳本來處理它。

這不是一個手動將所有頁面設爲私有的選項 - 我正在尋找一種處理此問題的編程方法。

任何人都可以幫忙嗎?

回答

4

只需將它們設置爲私有數據庫,使用下面的查詢:

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

後修訂的狀態都爲「繼承」,從而獲得從父頁或文章繼承的權利。

+0

有沒有這樣的方式,我可以編輯頁面的'可見性'而不用編輯'狀態'? (http://en.support.wordpress.com/pages/page-visibility/) – Khior 2013-04-25 09:04:38

+1

@Khior我想這是一樣的。我試圖在後臺設置文章從'公開'到'私人',並且在數據庫中切換狀態。 – feeela 2013-04-25 09:09:39

+0

最好確切地知道可見性是如何設置的(兩者之間的數據必須有一些區別),但狀態方法可以用於我的目的。謝謝=) – Khior 2013-04-25 09:27:09

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

這個查詢只能設置頁面私人

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); 
相關問題