X

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

Extraits par IsItWP

Parfois, vous n'avez pas besoin d'un éditeur de contenu pour les modèles de page spécifiques. C'est utile pour les pages de remerciement et autres pages qui ont un texte fixe et qui n'ont peut-être 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 modèle dans le code. Actuellement, c'est 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 pourriez également aimer ajouter du CSS personnalisé pour l'éditeur WordPress.

Commentaires   Laisser une réponse

  1. ça ne marche pas pour moi 🙁

    1. Si le modèle se trouve dans un dossier, vous devrez peut-être utiliser ce modèle : if($template_file == ‘templates/template-example.php’){ // modifiez le nom du modèle et le nom du dossier pour qu'ils correspondent au chemin correct

      Assurez-vous également de rafraîchir la page dans le navigateur.

    2. Je viens de tester avec WordPress 6.8.1, ça marche

      Vous référencez probablement le mauvais fichier ou le mauvais chemin ici

      $template_file === ‘page-template/page-template.php’

      Vérifiez en utilisant l'ID au lieu du modèle de page

      if ( intval($post_id) === 24346 ) { remove_post_type_support(‘page’, ‘editor’); }

    3. Je viens de tester et ça marche sur WordPress 6.8.1 – assurez-vous de référencer le bon chemin et le bon fichier. ($template_file === ‘template-page/template.php’)

      Vous pouvez également tester par ID de page pour voir si l'extrait fonctionne.

      if ( intval($post_id) === 24346 ) { remove_post_type_support(‘page’, ‘editor’); }

  2. Pourquoi ne pas utiliser :

    get_the_ID();

    au lieu de :

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

    1. get_the_ID(); doit être à l'intérieur de la boucle WordPress, alors que cet extrait doit fonctionner dans l'administration.

  3. Edvins Antonovs January 8, 2015 at 8:40 am

    Ça a marché pour moi ! Super boulot.
    Je l'ai ajouté à ma collection d'extraits.

  4. Merci. Ça a marché pour moi.

  5. Marcos Nakamine May 15, 2014 at 1:33 pm

    Tks

  6. Tu m'as sauvé la vie, mon ami. Merci mille fois !

    Juste pour info, ma page d'administration ne se chargeait initialement pas après une erreur serveur après avoir mis le code ci-dessus. J'ai changé ceci :

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

    par ceci :

    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;

    …et cela a résolu le problème.

    Merci encore !
    -Chris

  7. gracias, muy util

  8. cela ne fonctionne pas pour moi, j'obtiens les erreurs undefined index post et post_ID dans le backend

  9. Merci pour ça. Je vais devoir essayer !

    1.  Cool, content que ça vous plaise.

Ajouter un commentaire

Nous sommes ravis que vous ayez choisi de laisser un commentaire. Veuillez garder à l'esprit que tous les commentaires sont modérés conformément à notre politique de confidentialité, et tous les liens sont nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.

Liste de contrôle de lancement WordPress

La checklist ultime pour lancer un WordPress

Nous avons compilé 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 l'eBook gratuit !