X

Désactiver l’éditeur de contenu pour un modèle de page spécifique

Snippets by IsItWP

Parfois, vous n’avez pas besoin d’un éditeur de contenu pour les modèles de pages spécifiques. C’est utile pour les pages de remerciement et d’autres pages dont le texte est fixe et qui n’ont pas besoin de contenu.

Instructions : Ajoutez le code suivant au fichier functions.php de votre thème WordPress.
Vous devez changer le nom du fichier du modèle dans le code. Actuellement, il s’agit de submit.php, mais vous pouvez le remplacer par n’importe quel nom de fichier.

add_action( 'admin_init', 'hide_editor' );

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

	$template_file = get_post_meta($post_id, '_wp_page_template', true);
    
    if($template_file == 'submit.php'){ // edit the template name
    	remove_post_type_support('page', 'editor');
    }
}

Vous pouvez également apprécier l’ajout de CSS personnalisés pour l’éditeur de WordPress.

Commentaires   laisser une réponse

  1. its not working for me 🙁

    1. If the template is in a folder, you may have to use this pattern: if($template_file == ‘templates/template-example.php’){ // edit the template name and folder name to match the correct path

      Also, be sure to refresh the page in the browser.

  2. Why not use:

    get_the_ID();

    instead of:

    $post_id = $_GET[‘post’] ? $_GET[‘post’] : $_POST[‘post_ID’] ;

    1. get_the_ID(); needs to be inside the WordPress Loop, whereas this snippet needs to work in the admin.

  3. Edvins Antonovs janvier 8, 2015 à 8:40 am

    It worked for me! Great stuff.
    Added it to my snippet collection.

  4. Thank you. It worked for me.

  5. Marcos Nakamine mai 15, 2014 à 1:33 pm

    Tks

  6. You just saved me, my friend. Thanks a million!

    Just FYI, my admin page initially didn’t load on a server error after putting in the code above. I changed this:

    $post_id = $_GET[‘post’] ? $_GET[‘post’] : $_POST[‘post_ID’] ;
    if( !isset( $post_id ) ) return;

    to this:

    if ( isset ( $_GET[‘post’] ) )
    $post_id = $_GET[‘post’];
    else if ( isset ( $_POST[‘post_ID’] ) )
    $post_id = $_POST[‘post_ID’];

    if( !isset ( $post_id ) || empty ( $post_id ) )
    return;

    …and it fixed the issue.

    Thanks again!
    -Chris

  7. gracias, muy util

  8. this doesn’t work for me, I get the errors undefined index post and post_ID in the backend

  9. Thanks for this. I’ll have to try it!

    1.  Cool glad you like it.

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !