2017-05-08 14 views
0

これは動作していたと確信していますが、今はそうではありません。ログインしていない場合は特定のページカテゴリをリダイレクト

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

意図を、単純に十分な、ユーザーがログインしていないということです。「クライアント」カテゴリでページの範囲をタグ付けや機能に追加され、その後

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

:私はページにカテゴリを追加しました「クライアント」ページに直接アクセスしようとすると、私のカスタム/ログインページにリダイレクトされます。彼らがアクセスしようとしていたページに直接戻されるのはボーナスになりますが、これは以前から働いていました。ダースのページが増えているので、カテゴリー別に制限するのはページID配列よりも簡単ですが、何が間違っているのか分かりません。

すべてのアドバイスをよろしくお願いします! global variables pages in codex$pagesから

+0

[ここ](https://codex.wordpress.org/Global_Variables)から '$ pages'が返されます:'現在の投稿のページの内容。各ページ要素には、<! - nextpage - >タグで区切られたコンテンツの一部が含まれています。そして投稿IDまたはオブジェクトIDが必要です。 –

+0

ありがとう@dingo_d、ありがとうございます。削除されたグローバルページと$ページは動作しますが、カテゴリのスラッグもあります。ありがとう! – wheeleran

+0

クール:)これを答えとして追加します:) –

答えて

0

が返されます:

現在のポストのページの内容を。各ページ要素には、<!--nextpage-->タグで区切られたコンテンツの一部が含まれています。

そして、2番目の引数としてin_category()機能を使用する場合hereが述べたように、あなたは、ポスト/ページIDまたはオブジェクトのいずれかが必要です。

あなたは設定することで、訪問したページのカテゴリを取得しようとすることができます:

$current_cat = get_the_category(); 

そして、条件内

in_category($category_slug, $current_cat); 

をご確認ください。

関連する問題