web-dev-qa-db-ja.com

無効にする WP 特定のページテンプレート用のエディタ

この質問への答え はうまく機能していますが、他のテンプレートが使用されている場合もエディタを除外したいと思います。これを複数のテンプレートで機能させるためのコードの拡張方法を教えてください。

1
passoa

はい、試してください。

function remove_editor() {
    if (isset($_GET['post'])) {
        $id = $_GET['post'];
        $template = get_post_meta($id, '_wp_page_template', true);
        switch ($template) {
            case 'template_01.php':
            case 'template_02.php':
            case 'template_03.php':
            case 'template_04.php':
            // the below removes 'editor' support for 'pages'
            // if you want to remove for posts or custom post types as well
            // add this line for posts:
            // remove_post_type_support('post', 'editor');
            // add this line for custom post types and replace 
            // custom-post-type-name with the name of post type:
            // remove_post_type_support('custom-post-type-name', 'editor');
            remove_post_type_support('page', 'editor');
            break;
            default :
            // Don't remove any other template.
            break;
        }
    }
}
add_action('init', 'remove_editor');

テンプレート名で'template_01.php' ... 'template_04.php'を変更します。必要に応じて、ケースを追加してテンプレート名を追加できます。
例えば。

case 'template_05.php':


ただし、上記のコードと answer のコードでは、ページ編集画面から最初にページテンプレートを設定する必要があります。
これが役立つこと、そしてこれがどのように機能するかを明確にすることを願っています。

2
devkabiir