web-dev-qa-db-fra.com

Désactiver WP Éditeur pour des modèles de page spécifiques

La réponse à cette question fonctionne très bien, mais je veux exclure l'éditeur également lorsque d'autres modèles sont utilisés. Pouvez-vous s'il vous plaît me dire comment étendre le code pour que cela fonctionne avec plus d'un modèle?

1
passoa

Oui, essayez ceci:

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');

Changez le 'template_01.php' ... 'template_04.php' avec les noms de vos modèles et si vous le souhaitez, vous pouvez ajouter d'autres noms de modèles en ajoutant plus de cas.
par exemple.

case 'template_05.php':


Cependant, le code ci-dessus et celui de answer nécessitent que vous définissiez d'abord les modèles de page à partir de l'écran de modification de page.
J'espère que cela aide et clarifie comment cela fonctionne.

2
devkabiir