2017-11-01 23 views
1

テーマにテンプレートを配置するのではなく、独自のディレクトリにテンプレートを読み込むWordPressテーマ用のプラグインを作成しています。そのために、条件に応じて異なるテンプレートをロードするためのショートコードを作成しました。コードは次のとおりです。Plugin shortcodeは、ページエディタ(管理パネル)にテンプレートページを表示します。WordPress

add_shortcode( 'template'、 'add_template');

関数add_template($ ATTS){
エキス(shortcode_atts(配列( 'テンプレート' => ''
)、$ ATTS))。

スイッチ($テンプレート){

case 'template1': 
    include 'templates/template1.php';   
    break; 

    case 'template2': 
    include 'templates/template2.php';    
    break; 

    default: 
    include 'templates/template1.php';   
    break; 
    } 
} 

私の問題は、管理パネル内のページを表示するには、いくつかのテーマで私のプラグインのスタートである私が間違っているのは何がありますか?助けてください....

答えて

1

解決策が見つかりました。テンプレートを含める前に、ユーザーが管理者ではないというチェックを追加するだけです。

add_shortcode('template', 'add_template'); 

function add_template($atts) { 
extract(shortcode_atts(array('template' => '' 
), $atts)); 

switch ($template) { 

    case 'template1': 
    if (!is_admin()) { 
     include 'templates/template1.php'; 
    } 
    break; 

    case 'template2': 
     if (!is_admin()) { 
     include 'templates/template2.php'; 
     }    
     break; 

    default: 
    if (!is_admin()) { 
     include 'templates/template1.php'; 
    }   
    break; 
    } 
} 
関連する問題