Tipos de publicaciones personalizadas: cómo deshacerse del editor (-meta box)

9

Me pregunto cómo puedo deshacerme del post-editor (visual + html). Traté de no registrar el soporte de tipo de publicación, y todavía aparece (cancelar el registro funciona bien con cualquier otro cuadro meta predeterminado en la pantalla de edición de publicación). También traté de cancelar el registro con remove_meta_box, que tampoco funcionó (funciona para todo lo demás excepto el metacuadro de título). Tal vez me estoy perdiendo algo. Ya busqué en la web y no pude encontrar nada. Espero que alguien me pueda decir. ¡Gracias!

PD. Me encantaría una solución para deshabilitar el campo del título también, pero eso es el segundo (no registrarlo con el tipo de publicación funciona).

(La versión de Wordpress es 3.0.4.)

emperador
fuente

Respuestas:

17

Dar una matriz en blanco a 'soportes' en la declaración del tipo de publicación debe eliminar el editor y el título, junto con todos los demás cuadros predeterminados en la página de edición de publicaciones.

$supports = array ('');
    $args = array(
      'label' => 'people',
      'supports' => $supports,
      'hierarchical' => false,
      'public' => true,
      'rewrite' => true
         );

    register_post_type( 'people', $args);

Resultado: texto alternativo complete los 'apoyos' con los elementos que desee mostrar, como trackbacks, comentarios, etc. O simplemente déjelo en blanco para dejar la página vacía, a excepción del cuadro que le permite guardar sus publicaciones. Asegúrese de visitar aquí si también desea deshacerse de las metaboxes jerárquicas de taxonomía.

Manny Fleurmond
fuente
Gracias hasta ahora Mi problema es que no puedo configurar todo para vaciarlo. Escribí tres clases para acelerar la generación de tipos de publicaciones personalizadas, taxonomías y etiquetas personalizadas. Tienen valores predeterminados. En el caso de los tipos de publicaciones personalizadas, es simplemente todo. Pero necesito cancelar el registro de algunos cuadros para tipos de publicación específicos. Y por mi parte, necesito anular el registro del cuadro del editor también.
Kaiser
Estoy interesado en lo que quieres decir con configurar todo para vaciarlo. Si desea deshacerse del editor, simplemente no lo coloque; editor 'en la matriz' admite 'cuando cree el tipo de publicación en su clase.
Manny Fleurmond el
2
@kaiser si son tus propias clases, ¿cuál es el problema? ¿Hacer que lo manejen? ..
Rarst
@Rarst: es solo una base que hace lo siguiente: registrar tipos de publicaciones y taxonomías desde una matriz y ofrece un filtro para $ etiquetas y $ args (predeterminado y específico). La clase de términos solo genera términos no borrables que se actualizan y asignan desde una matriz. Las cajas meta pueden ser fáciles sin la clase y no tendría sentido para mí integrarlas. Las clases solo están ahí para ahorrarme tiempo y evitar que los clientes eliminen los términos que el sistema necesita. Pero gracias por mirar. Su ayuda es muy apreciada (de nuevo) :)
kaiser
2
@kaiser entonces, ¿cuál es el problema con la configuración supportsde matriz vacía a través del filtro?
Rarst
15

Si no pasa nada para el supportsargumento, se utiliza la configuración predeterminada de'title', 'editor' (donde "nada" es cualquier cosa que sea empty()).

Sin embargo, al igual que puede agregar soporte para algo después de registrar el tipo de publicación add_post_type_support( $post_type, $feature ), puede eliminar el soporte para algo llamando remove_post_type_support( $post_type, $feature ). Entonces, llamar a esto después de registrar su tipo de publicación debería eliminar el editor:

remove_post_type_support( 'my_post_type', 'editor' );

Estas funciones solo manipulan la $_wp_post_type_featuresvariable global , pero siempre es mejor hacer esto con las funciones de la API que jugar con ella.

Jan Fabry
fuente
SOLUCION! Siempre pensé que esto era solo para eliminar ex. miniaturas o nav_menu a través de un tema secundario. ¡Muchas gracias!
kaiser
1
Ay, me perdí eso. Buen punto, pasar matriz vacía se evaluará como vacía ... Pasar valores vacíos siempre es un desastre, es contra-intuitivo, por lo que se trata como predeterminado en lugar de nada . :(
Rarst
1
@Rarst: Creo que también funcionaría si pasaras un nombre de función ficticio. Es solo una clave de matriz, por lo que no importa si se insertan datos ficticios. Una vez usé en 0.1lugar de 0un parámetro para pasar el empty()cheque.
Jan Fabry
1
@ Jan Fabry sí, no es la primera vez que pisé la empty()mía. Como arriba, altamente contra-intuitivo.
Rarst
Hm. No funciona con claves y, por lo tanto, creo que los "valores ficticios" podrían convertirse en otra "mina" cuando se actualice más tarde (intente encontrar el valor incorrecto). De todos modos: ¡muchas gracias a los dos! :) Editar: sería útil si los valores no solo estuvieran allí, sino que fueran pares clave / valor. Ex. 'support' => array('thumbnail' => true, 'editor' => false);
kaiser
2

Utilizo el complemento UI de tipo de publicación personalizada para crear tipos de publicación personalizados. Con este complemento, puede deshabilitar el editor posterior en las opciones avanzadas.

Gestionar tipo de publicación -> Ver opciones avanzadas

Aquí hay un enlace al complemento: http://wordpress.org/extend/plugins/custom-post-type-ui/

PD: también te permite desactivar el campo de título :)

Carson
fuente
Como se dijo anteriormente, escribí tres clases y, por lo tanto, no puedo cambiar a un complemento. Quiero decir que ni siquiera consideraría usar un complemento de todos modos. Los complementos son (imo) para el desarrollo o cosas intercambiables fáciles como formularios de comentarios y no cosas centrales como tipos de publicaciones o taxonomías. ¡Gracias de cualquier manera!
kaiser
1
En realidad, los complementos pueden personalizar casi cualquier cosa sobre Wordpress, incluidos los tipos de publicaciones personalizadas. Estoy creando un complemento en este momento que crea numerosos tipos de publicaciones, sus metaboxes y sus diversos campos personalizados.
Manny Fleurmond el
@Manny Fleurmond: Si vas a compartir, por favor déjame un enlace. Todavía estoy pensando en tal vez, tal vez escribir una rutina para metacajas avanzadas en mis clases también.
kaiser
0

Echa un vistazo a register_post_type (); en el códice En la sección Argumentos , desplácese hacia abajo hasta que vea Soportes .

A partir de 3.5, boolean falsese puede pasar como valor en lugar de una matriz para evitar el comportamiento predeterminado (título y editor).

O personalice su tipo de publicación personalizada como desee agregando los valores que desee, por ejemplo:

'supports' => array(
    'title',
    'author',
    'thumbnail',
    'post-formats'
),

Estas opciones compatibles en mi matriz aparecerán en mi backend de WordPress.

Gothburz
fuente
-2

También puede establecer el estilo para la página de edición de administrador para ocultar ciertos elementos, como el editor, etc.

function custom_colors() {
   echo '<style type="text/css">
            body.post-type-events #postdivrich {
            display: none;
            }
         </style>';
}

add_action('admin_head', 'custom_colors');
romapad
fuente
Gracias por su respuesta, pero esto (a) lo haría no extraíble ya que no está registrado en la API de dependencias y (b) lo haría accesible para las personas que saben cómo usar las herramientas de desarrollo de los navegadores.
Kaiser