2016-02-19 175 views
0

有問題。谷歌沒有幫助我:) 默認情況下,當您將可見性頁面設置爲私有時,它會爲我的頁面顯示404-找不到的模板。自定義WordPress默認隱私可見性模板頁面

我需要自定義WP私有模板以設置我的特定內容。

我不想創建一個自定義模板頁面,並設置類似

if (is_user_logged_in()) {// f.e. Login/Signup with Facebook} 
else { // show content} 

只需編輯默認WordPress模板當我設置一個頁面爲私人。 有沒有人幫助我? :)

回答

0

,我建議一些元框添加到您的文章類型,並通過the_content

應用過濾器不過還是你正在尋找一些核心破解再考慮這個例子顯示私人和公開內容的最佳方式

function alter_private_query($posts, $query) { 
    if (!is_user_logged_in() && !empty($query->is_singular) && isset($posts[0]->post_status) && $posts[0]->post_status == 'private') { 
     $posts = get_posts(array(
        'name'  => 'some-public-post-slug', 
        'post_type' => 'post', 
        'post_status' => 'publish', 
        'numberposts' => 1 
       )); 
    } 

    return $posts; 
} 
add_filter('posts_results', 'alter_private_query', 1, 2); 

沒有過濾器時,WordPress的清空$query->posts如果不是在登錄的用戶。 仍然只是上面,你已經過濾posts_results。使用這個,你可以用公共職位替換posts變量。

這只是回答你的條件問題,我不會推薦它。畢竟WordPress提供給我們添加許多元框的能力。您甚至可以在不觸摸模板的情況下爲每個用戶顯示不同的內容。

注意:這可能會造成搜索引擎優化的問題,因爲你會有兩個相同的內容 後有兩個不同的URL。機器人不能登錄到您的 網站。