web-dev-qa-db-fra.com

Masquer la zone de contenu sur les pages spécifiques?

Est-ce possible de faire quelque chose?

Dans certaines pages, j'utilise un plugin de boîte personnalisé et je n'ai pas besoin d'afficher la boîte de contenu sur certaines de ces pages. Est-il possible de le masquer par modèle de page? Ou ID si le modèle n'est pas possible?

1
qwerty

J'ai fini par utiliser la réponse de userabuser avec une petite modification, car Global $ post ne semble pas exister sur init. Vous pouvez plutôt simplement interroger post dans la chaîne de requête, comme suit:

function remove_editor() {
    if (isset($_GET['post'])) {
        $id = $_GET['post'];
        $template = get_post_meta($id, '_wp_page_template', true);

        if($template == 'template_name.php'){ 
            remove_post_type_support( 'page', 'editor' );
        }
    }
}
add_action('init', 'remove_editor');
5
unkulunkulu

ajoutez ceci à functions.php

add_action('init', 'remove_content_editor');

function remove_content_editor() {
    remove_post_type_support( 'posttype', 'editor' );
}

Remplacez posttype par le nom du type de post. Cela supprimera l'éditeur de contenu des pages de ce type de message.

2
Mridul Aggarwal

Pour supprimer l'éditeur basé sur le modèle, vous pouvez faire quelque chose comme:

add_action('init', 'remove_editor');

function remove_editor() {
    global $post;
    $template = get_post_meta($post->ID, '_wp_page_template', true);

    //change 'page' to whatever post type you want to apply this to.
    if($template == 'template_name.php'){ 
        remove_post_type_support( 'page', 'editor' );
    }

}
1
userabuser

Le code suivant fonctionne pour moi. (soit des pages spécifiques ou un modèle)

add_action('admin_init', 'hide_editor');

function hide_editor() {    
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'];

    if (!isset($post_id))
        return;
    // Hide the editor on the page titled 'Press and services' pages
    $hide_page = get_the_title($post_id);
    if ($hide_page == 'press') {
        remove_post_type_support('page', 'editor');
    }
    if ($hide_page == 'Services') {
        remove_post_type_support('page', 'editor');
    }
    // Hide the editor on a page with a specific page template
    // Get the name of the Page Template file.
    $template_file = get_post_meta($post_id, '_wp_page_template', true);
    //---
    if ($template_file == 'template-press.php') { // the filename of the page template
        remove_post_type_support('page', 'editor');
    }
    if ($template_file == 'template-service.php') { // the filename of the page template
        remove_post_type_support('page', 'editor');
    }
}
0
Mndr