2017-05-08 71 views
0

我確定這是工作,但現在不是。我添加的類別與網頁:重定向特定頁面類別如果沒有登錄

function add_categories_to_pages() { 
register_taxonomy_for_object_type('category', 'page'); 
} 
add_action('init', 'add_categories_to_pages'); 

然後標記的頁面範圍與「客戶」的類別,並添加到功能:

add_action('template_redirect', 'client_redirect_to_login'); 
function client_redirect_to_login() { 
$category_slug = 'client'; 
global $pages; 
if (! is_user_logged_in() && in_category($category_slug, $pages)) { 
wp_redirect(site_url('/login')); 
exit(); 
} 
} 

意圖,足夠簡單,是不是在用戶登錄試圖直接訪問任何'客戶'頁面被重定向到我的自定義/登錄頁面。被直接返回到他們試圖訪問的頁面將是一個獎金,但這,這個,曾經工作。有十幾頁,並在不斷增長,所以按類別限制比頁面ID數組更容易 - 但我看不出我做錯了什麼。

所有建議非常感謝!

+0

從[這裏](https://codex.wordpress.org/Global_Variables)'$ pages'將返回:'當前帖子頁面的內容。每個頁面元素都包含由<! - nextpage - >標記分隔的部分內容。「您需要post/page ID或對象 –

+0

感謝@dingo_d,明白了;刪除全球和$頁面,它的工作,與類別slu too也。謝謝! – wheeleran

+0

酷:)我會添加這個作爲答案然後:) –

回答

0

global variables pages in codex$pages將返回:

當前職位的網頁內容。每個頁面元素都包含由<!--nextpage-->標記分隔的部分內容。

而且你需要或者郵寄/頁ID或對象使用in_category()功能作爲第二個參數時,如上所述here

您可以嘗試通過設置來獲得訪問的網頁的類別:

$current_cat = get_the_category(); 

再檢查

in_category($category_slug, $current_cat); 

條件內。

相關問題