X

Desactivar el editor de contenido para una plantilla de página específica

Snippets by IsItWP

A veces no necesitas un editor de contenido para las plantillas de páginas específicas. Es útil para las páginas de agradecimiento y otras páginas que tienen un texto fijo y pueden no necesitar ningún contenido.

Instrucciones: Añada el siguiente código al archivo functions.php de su tema WordPress.
Necesitas cambiar el nombre de la plantilla en el código. Actualmente es submit.php pero puedes sustituirlo por cualquier nombre de archivo.

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

También puede disfrutar de la adición de CSS personalizado para el editor de WordPress.

Comentarios   Deja una respuesta

  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 enero 8, 2015 en 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 mayo 15, 2014 en 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.

Añadir un comentario

Nos alegra que haya decidido dejar un comentario. Tenga en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de privacidad , y que todos los enlaces son nofollow. NO utilice palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.

WordPress Launch Checklist

La lista definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de comprobación para el lanzamiento de su próximo sitio web de WordPress en un práctico ebook.
Sí, envíeme el ¡gratuito!