Eliminar el editor principal de la pantalla de la página de edición de wordpress

3 minutos de lectura

¿Alguien conoce una forma de eliminar el editor principal de la pantalla de edición de la página? Y no solo con css. He agregado algunas otras cajas meta con el tinymce y chocan con la principal.

Tengo una clase que elimina otros metacuadros de la pantalla de edición, pero no puedo deshacerme del editor principal de esta manera. Intenté agregar ‘divpostrich’ y ‘divpost’ a la matriz en la clase (pero sin suerte):

class removeMetas{
    public function __construct(){
        add_action('do_meta_boxes', array($this, 'removeMetaBoxes'), 10, 3);
    }

    public function removeMetaBoxes($type, $context, $post){
        /**
         * usages
         * remove_meta_box($id, $page, $context)
         * add_meta_box($id, $title, $callback, $page, $context="advanced", $priority = 'default')
         */
        $boxes = array( 'slugdiv', 'postexcerpt', 'passworddiv', 'categorydiv',
                        'tagsdiv', 'trackbacksdiv', 'commentstatusdiv', 'commentsdiv',
                        'authordiv', 'postcustom');

        foreach ($boxes as $box){
            foreach (array('link', 'post', 'page') as $page){
                foreach (array('normal', 'advanced', 'side') as $context){
                    remove_meta_box($box, $type, $context);
                }
            }
        }
    }
}

$removeMetas = new removeMetas();

También intenté eliminar el ‘divpostrich’ con jquery. Pero no puedo averiguar dónde poner el js para que funcione. Cuando elimino el ‘postdivrich’ en el navegador con firebug, mis campos restantes de tinymce funcionan perfectamente.

¿Algunas ideas?

Hay soporte WP incorporado para esto, por lo que no tiene que jugar directamente con los globales y garantizar la compatibilidad futura si alguna vez cambian la forma en que se manejan las funciones. Sin embargo, el código de WP Core tiene prácticamente la misma lógica que la respuesta @ user622018

function remove_editor() {
  remove_post_type_support('page', 'editor');
}
add_action('admin_init', 'remove_editor');

  • Nota: para hacer esto de manera selectiva, para páginas particulares, debe conectarse a algo más tarde. Lo global $post el objeto no está disponible en admin_init. he usado admin_head para deshabilitar el editor solo para la página de inicio.

    –Steve Taylor

    3 de julio de 2013 a las 20:56

Lo que buscas es el global. $_wp_post_type_features formación.

A continuación se muestra un ejemplo rápido de cómo se puede utilizar

function reset_editor()
{
     global $_wp_post_type_features;

     $post_type="page";
     $feature = "editor";
     if ( !isset($_wp_post_type_features[$post_type]) )
     {

     }
     elseif ( isset($_wp_post_type_features[$post_type][$feature]) )
     unset($_wp_post_type_features[$post_type][$feature]);
}

add_action("init","reset_editor");

  • porqué el if (!isset($_wp_post_type_features[$post_type]) ¿línea? No está haciendo nada y la siguiente línea está verificando de todos modos y solo se desactivará si la matriz asociativa contiene las claves requeridas.

    – jbx

    30 de julio de 2013 a las 9:22


  • Estoy de acuerdo, no es necesario, solo necesito esto: if ( isset($_wp_post_type_features[$post_type][$feature]) ) unset($_wp_post_type_features[$post_type][$feature]);

    – gris

    02/01/2015 a las 11:40

Agregue el siguiente código a sus funciones.

function remove_editor_init() {
if ( is_admin() ) {
    $post_id = 0;
    if(isset($_GET['post'])) $post_id = $_GET['post'];
    $template_file = get_post_meta($post_id, '_wp_page_template', TRUE);
    if ($template_file == 'page-home.php') {
        remove_post_type_support('page', 'editor');
    }
}
}
add_action( 'init', 'remove_editor_init' );

¿No podría simplemente deshabilitar el editor TinyMCE, dejando el editor HTML, ya que sus metaboxes chocan con él? 🙂

Para deshabilitar el editor, deberá editar su wp-config.php archivo y agregue esta línea en la parte superior:

define('DISALLOW_FILE_EDIT', true);

  • Esta constante evita que se use el editor de temas/complementos, pero no tiene impacto en la pantalla del editor de páginas.

    – Sara Lewis

    13 de agosto de 2014 a las 17:59

  • Esta constante evita que se use el editor de temas/complementos, pero no tiene impacto en la pantalla del editor de páginas.

    – Sara Lewis

    13 de agosto de 2014 a las 17:59

¿Ha sido útil esta solución?