¿Personalizar la pantalla Editar publicación para tipos de publicación personalizados?

15

¿Cuál es la mejor manera de personalizar completamente la pantalla de administración Editar publicación para un tipo de publicación personalizado específico?

Ya lo he personalizado hasta cierto punto en la creación del tipo de publicación personalizada: agregar campos adicionales, etc., pero quiero eliminar muchos de los elementos como enlaces permanentes, vista previa de la publicación, deshabilitar la edición rápida, etc.

fxfuture
fuente

Respuestas:

16

Aquí se responden algunas de estas preguntas: Establecer las opciones predeterminadas de la pantalla de administración y el orden de Metabox

Para eliminar el metabox permalink:

function my_remove_meta_boxes() {
    remove_meta_box('slugdiv', 'my-post-type', 'core');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );

adicionalmente, deberá ocultar # edit-slug-box con css o javascript. ver: ¿Cómo cargar scripts externos en Admin pero SOLO para un tipo de publicación específico?

Para deshabilitar la edición rápida:

function my_remove_actions( $actions, $post ) {
    if( $post->post_type == 'my-post-type' ) {
        unset( $actions['inline hide-if-no-js'] );
    }
    return $actions;
}
add_filter( 'post_row_actions', 'my_remove_actions', 10, 2 );

Para cambiar el enlace de vista previa, puede usar el filtro 'preview_post_link', pero solo funciona cuando la publicación aún no se ha publicado. Entonces, la solución sería eliminar el cuadro meta de envío y agregar el suyo modificado:

function my_replace_submit_meta_box() {
    remove_meta_box('submitdiv', 'my-post-type', 'core');
    add_meta_box('submitdiv', __('Publish'), 'custom_post_submit_meta_box', 'my-post-type', 'side', 'core');
}
add_action( 'admin_menu', 'my_replace_submit_meta_box' );

function custom_post_submit_meta_box() { // a modified version of post_submit_meta_box() (wp-admin/includes/meta-boxes.php, line 12)
    ...
}
sorich87
fuente
Muchas gracias. ¡He estado buscando la respuesta a esto por siglos! Además, ¿hay alguna forma de cambiar dónde se vincula el botón Vista previa en el cuadro Publicar? Me gustaría vincularlo a mysite.com/video?id='id de publicación 'o abrir una caja de luz con un reproductor de video
fxfuture
Hola de nuevo, en realidad no puedo obtener ninguno de esos bits de código que proporcionaste para trabajar. El metabox permalink simplemente deshabilita los cambios guardados en el permalink en lugar de ocultarlo, y no puedo deshabilitar el enlace de Edición rápida. ¿Algunas ideas?
fxfuture
Edité mi respuesta. Acabo de probar el anuncio de edición rápida de código que funciona. Estás hablando del enlace de edición rápida debajo del nombre de la publicación en: wp-admin / edit.php? Post_type = sis_course, ¿verdad?
sorich87
Genial, echaré un vistazo a la información adicional que publicaste. Pude ocultar la edición rápida al cambiar 'jerárquico' => falso en mi tipo de publicación personalizada. No parece hacer una diferencia, ya que estoy usando el complemento Orden de tipos de publicación para ordenarlo de todos modos. ¡Gracias!
fxfuture
¡Reemplazar el meta box de envío funcionó perfectamente! En realidad, tenía que incluir $ post entre los corchetes en su función, es decir, custom_post_submit_meta_box ($ post). Así que los tres están ordenados :) Hay un poco más de personalización que quiero hacer tanto en las publicaciones de la lista como en la pantalla de edición de publicaciones: ¿conoce una guía de referencia que detalle cómo eliminar / reemplazar todos los diferentes elementos?
fxfuture