X

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

Snippets de IsItWP

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

Instrucciones: Agrega el siguiente código al archivo functions.php de tu tema de WordPress.
Necesitas cambiar el nombre del archivo de plantilla en el código. Actualmente es submit.php pero puedes reemplazarlo con 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 que disfrutes agregando CSS personalizado para el editor de WordPress.

Comentarios   Deja una respuesta

  1. no me funciona 🙁

    1. Si la plantilla está en una carpeta, es posible que debas usar este patrón: if($template_file == ‘templates/template-example.php’){ // edita el nombre de la plantilla y el nombre de la carpeta para que coincidan con la ruta correcta

      Además, asegúrate de actualizar la página en el navegador.

    2. Lo acabo de probar con WordPress 6.8.1, funciona

      Probablemente estás referenciando el archivo o la ruta incorrecta aquí

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

      Verifica doblemente usando el ID en lugar de la plantilla de página

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

    3. Lo acabo de probar y funciona en WordPress 6.8.1 – asegúrate de que estás referenciando la ruta y el archivo correctos. ($template_file === ‘template-page/template.php’)

      También puedes probar por ID de página para ver si el fragmento funciona.

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

  2. ¿Por qué no usar:

    get_the_ID();

    en lugar de:

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

    1. get_the_ID(); necesita estar dentro del Loop de WordPress, mientras que este fragmento necesita funcionar en el administrador.

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

    ¡Me funcionó! Genial.
    Lo agregué a mi colección de fragmentos.

  4. Gracias. Me funcionó.

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

    Gracias

  6. Me salvaste, amigo. ¡Gracias un millón!

    Solo para que sepas, mi página de administrador inicialmente no cargó después de poner el código anterior, debido a un error del servidor. Cambié esto:

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

    a esto:

    si ( isset ( $_GET[‘post’] ) )
    $post_id = $_GET[‘post’];
    si no ( isset ( $_POST[‘post_ID’] ) )
    $post_id = $_POST[‘post_ID’];

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

    …y solucionó el problema.

    ¡Gracias de nuevo!
    -Chris

  7. gracias, muy útil

  8. esto no me funciona, obtengo los errores undefined index post y post_ID en el backend

  9. ¡Gracias por esto! ¡Tendré que probarlo!

    1.  Genial, me alegra que te guste.

Agrega un comentario

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

Lista de verificación para lanzar WordPress

La lista de verificación definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de verificación para el lanzamiento de tu próximo sitio web de WordPress en un práctico ebook.
¡Sí, envíame el eBook gratis!