web-dev-qa-db-ja.com

管理パネルのページにテンプレートを割り当てずにテンプレートファイルを呼び出すことはできますか?

このアイデアは、私のテーマの特定の部分を過度に熱心なクライアントから保護するためのものです。フロントエンドに存在し、メニューに追加することができるページを追加したいのですが(Wordpress 3.0 APIを使用)、そのページは管理者パネルの 'Pages'ダイアログには表示されないので、ユーザは編集できません。

2
Mild Fuzz

このようにtemplate_redirectにフックすることができます:

function custom_template_redirect() {
    global $wp;

    if ($wp->query_vars['pagename'] == 'my-page-slug') { // check the page slug
        status_header(200); // a 404 code will not be returned in the HTTP headers if the page does not exists

        include(TEMPLATEPATH . "/test.php"); // include the corresponding template
        die();
    }
}
add_action( 'template_redirect', 'custom_template_redirect' );
3
sorich87