2016-07-05 8 views
-1

私はWPプラグインで作業しています。はメンテナンスが有効なときにをリダイレクトします。私はむしろ、ユーザーをリダイレクトしないWordPress Plugin:リダイレクトする代わりに、includeを使用します。

if(! is_page(intval($maintenance_options['page']))) { 
    wp_redirect(get_permalink($maintenance_options['page'])); exit; 
} 

が、includeページ。この例では完全に間違っているが、ちょうどそれをクリアするには:

include($maintenance_options['page']); 

...ので、ユーザは、インデックスの代わりにスラッシュページにとどまります。

これは可能ですか、それは安全ですか、どのように実行できますか?

答えて

0

template_includeと呼ばれるaction hook for this purposeがあります:

ワードプレスは、所定のテンプレートファイルが含まれて前に、このフィルターフックはすぐに実行されます。これは、WordPressのデフォルトのテンプレート動作を無効にするために使用できます。

例:

add_filter('template_include', 'maintenance_template', 99); 
function maintenance_template($template) { 
    if(! is_page(intval($maintenance_options['page']))) { 
     $new_template = locate_template(array('path-to-template-relative-to-theme-root.php')); 
     if ('' != $new_template) { 
      return $new_template ; 
     } 
    } 
    return $template; 
} 
+0

知るには良いが、ありがとうございました。 'path-to-template-relative-to-theme-root.php'ではどういう意味ですか? –

+0

私は "彼ら"が誰であるか分かりません。私はプレースホルダーとしてそれを書いた。そのパスをテンプレートへの実際のパスに置き換える必要があります。そのテンプレートパスは、テーマルートディレクトリからの相対パスです。 – rnevius

+0

これにより、ユーザーに空のページテンプレートを与えることもできますか?それも私が必要なものになります! –

関連する問題