¿Cómo cambiar la página de edición para un tipo de publicación personalizada?
He estado buscando esto todo el día y no puedo encontrarlo.
Estoy trabajando en una página de contactos personalizada y estoy usando la función de tipo de publicación personalizada (custom post type) para tener más control sobre ella. Busco cambiar la página de edición a una plantilla personalizada, (por ejemplo, cuando voy a /wp-admin/post.php?post=1234&action=edit
), quiero que muestre una página personalizada. No necesito ninguna caja meta ni nada. Tal vez el editor, pero cerca de la parte inferior de la página (no en la parte superior predeterminada).
He encontrado cómo eliminar las cajas meta, pero no he encontrado cómo obtener una página limpia en la página de edición del CPT.
function remove_metaboxes(){
remove_meta_box('postexcerpt', 'obpcontacts', 'normal'); // Caja de extracto
remove_meta_box('commentstatusdiv', 'obpcontacts', 'normal'); // Caja de estado de comentarios
remove_meta_box('commentsdiv', 'obpcontacts', 'normal'); // Caja de comentarios
}
add_action( 'add_meta_boxes', 'remove_metaboxes',11 );
¿Ideas sobre cómo crear una plantilla personalizada en la sección de edición de wp-admin para mi tipo de publicación personalizada?
Hasta donde sé, puedes eliminar casi todo excepto la etiqueta de título h2
y el borde de .postbox-container
. También ten en cuenta que el #message
no es visible por defecto, pero puede aparecer dependiendo de lo que hagas.
Cuando registres tu CPT (Tipo de Publicación Personalizado), establece supports
como un array vacío.
'supports' => array ('')
Luego puedes usar lo siguiente para eliminar los metaboxes de publicación y slug (el slug no es visible por defecto, pero está ahí bajo las opciones de pantalla):
function remove_metaboxes(){
remove_meta_box('slugdiv', 'obpcontacts', 'normal'); // Slug
remove_meta_box('submitdiv', 'obpcontacts', 'side'); // Caja de publicación
}
add_action( 'add_meta_boxes', 'remove_metaboxes', 11 );
Te quedarán algunos elementos que podrías necesitar eliminar con JavaScript:
// jQuery solo en tu CPT
.removeClass("wrap"); // Eliminar todo el CSS

Si no necesitas la funcionalidad (en lugar de ocultarla) puedes eliminarla completamente en la lista de argumentos proporcionados a register_post_type()
.
Esto solo mostrará los campos de título y editor.
$args = array(
'supports' => array( 'title', 'editor' )
);
Posibles soportes:
- 'title' (título)
- 'editor' (contenido)
- 'author' (autor)
- 'thumbnail' (imagen destacada, el tema actual también debe soportar post-thumbnails)
- 'excerpt' (extracto)
- 'trackbacks' (trackbacks)
- 'custom-fields' (campos personalizados)
- 'comments' (también mostrará el globo de conteo de comentarios en la pantalla de edición)
- 'revisions' (almacenará revisiones)
- 'page-attributes' (orden del menú, debe ser jerárquico para mostrar la opción Padre)
- 'post-formats' (agrega formatos de entrada, ver Formatos de entrada)
