X

Disabilita Editor Contenuti per Modello Pagina Specifico

Snippet di IsItWP

A volte non è necessario un editor di contenuti per specifici modelli di pagina. È utile per le pagine di ringraziamento e altre pagine che hanno un testo fisso e potrebbero non necessitare di alcun contenuto.

Istruzioni: Aggiungi il seguente codice al file functions.php del tuo tema WordPress.
Devi cambiare il nome del file del modello nel codice. Attualmente è submit.php ma puoi sostituirlo con qualsiasi nome di file.

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

Potresti anche voler aggiungere CSS personalizzato per l'editor di WordPress.

Commenti   Lascia una risposta

  1. non funziona per me 🙁

    1. Se il modello si trova in una cartella, potresti dover usare questo schema: if($template_file == ‘templates/template-example.php’){ // modifica il nome del modello e il nome della cartella per corrispondere al percorso corretto

      Inoltre, assicurati di aggiornare la pagina nel browser.

    2. Appena testato con WordPress 6.8.1, funziona

      Probabilmente stai facendo riferimento al file o al percorso sbagliato qui

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

      Verifica doppiamente usando l'ID invece del modello di pagina

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

    3. Appena testato e funziona su WordPress 6.8.1 – assicurati di fare riferimento al percorso e al file corretti. ($template_file === ‘template-page/template.php’)

      Puoi anche testare per ID di pagina per vedere se lo snippet funziona.

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

  2. Perché non usare:

    get_the_ID();

    invece di:

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

    1. get_the_ID(); deve essere all'interno del Loop di WordPress, mentre questo snippet deve funzionare nell'area admin.

  3. Edvins Antonovs 8 gennaio 2015 alle 08:40

    Ha funzionato per me! Ottima roba.
    Aggiunto alla mia raccolta di snippet.

  4. Grazie. Ha funzionato per me.

  5. Marcos Nakamine 15 maggio 2014 alle 13:33

    Grazie

  6. Mi hai salvato, amico mio. Grazie mille!

    Solo per informazione, la mia pagina admin inizialmente non si caricava con un errore del server dopo aver inserito il codice sopra. Ho cambiato questo:

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

    in questo:

    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;

    ...e ha risolto il problema.

    Grazie ancora!
    -Chris

  7. grazie, molto utile

  8. questo non funziona per me, ottengo gli errori undefined index post e post_ID nel backend

  9. Grazie per questo. Dovrò provarlo!

    1.  Fantastico, sono contento che ti piaccia.

Aggiungi un commento

Siamo lieti che tu abbia scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra normativa sulla privacy e tutti i link sono nofollow. NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.

Checklist per il lancio di WordPress

La Guida Definitiva per il Lancio di WordPress

Abbiamo raccolto tutti gli elementi essenziali della checklist per il lancio del tuo prossimo sito web WordPress in un comodo ebook.
Sì, Inviami l'eBook Gratuito!