Me pregunto si hay una manera de cambiar la posición predeterminada de los meta cuadros de Wordpress, como "imagen destacada" para tipos de publicaciones personalizadas sin tener que arrastrarlos manualmente.
Ejemplo:
Me pregunto si hay una manera de cambiar la posición predeterminada de los meta cuadros de Wordpress, como "imagen destacada" para tipos de publicaciones personalizadas sin tener que arrastrarlos manualmente.
Ejemplo:
Respuestas:
Puede eliminar los meta cuadros predeterminados con remove_meta_box y volver a agregarlos en una posición diferente con add_meta_box:
add_action('do_meta_boxes', 'wpse33063_move_meta_box');
function wpse33063_move_meta_box(){
remove_meta_box( 'postimagediv', 'post', 'side' );
add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}
Esto lo eliminará de la columna lateral y lo agregará a la columna principal. cambie post
en este ejemplo a cualquiera que sea su tipo de publicación personalizada.
add_meta_box()
necesita un $callback
nombre de función, ¿cómo puedo saber el nombre de la función utilizada por WordPress? Supongamos que si quiero hacer lo mismo para la barra lateral meta_box 'Categorías' (#categorydiv)?
/wp-admin/edit-form-advanced.php
y verá dónde WordPress agrega todos los meta cuadros principales y las devoluciones de llamada y argumentos que utiliza. por categorías lo es post_categories_meta_box
.
Luché con esto también. Realmente no encontré una manera limpia de redefinir el diseño / orden, especialmente porque los usuarios pueden cambiarlo cuando / si arrastran los cuadros.
Me gusta hacer las cosas 'con' wordpress (generalmente vale la pena), criticar que chocar con él y la forma en que wordpress lo hace es la siguiente:
WordPress almacena las posiciones arrastradas por usuario por pantalla y hay un montón de teclas meta-usuario que usa dependiendo de la página / pantalla en la que se encuentre.
Por lo tanto, puede agregar una acción o filtro para cada nuevo usuario para establecer la configuración de usuario de la manera que desea que sea el valor predeterminado.
1) Arrastre y organice la página que desea afectar, luego 2) mire en phpmyadmin en su meta de usuario para su identificación y vea qué wp ha almacenado allí. 3) luego codifique la nueva acción del usuario de la siguiente manera si un usuario NO tiene esa configuración ya establecida (para evitar sobrescribir una elección personal), puede configurarla de la manera que desee, con el valor que encontró al configurarla manualmente.
Para tener una idea de las meta-teclas meta-usuario que está buscando, vea estas capturas de pantalla: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/
(Terminé escribiendo un complemento genérico para que, como administrador, pudiera definir mi diseño preferido para todos los usuarios para todo tipo de páginas / pantallas. Luego, podrían alterar eso, por ejemplo, a medida que se vuelven más competentes. Además, no se romperá cuando wp cambie El complemento cosas como yo solo obtiene los valores de usuario de la plantilla, ni siquiera intenta establecer el valor en un valor codificado).
Si desea ordenar con precisión sus meta cuadros, puede usar este complemento: https://wordpress.org/plugins/post-meta-box-order/
Se reproduce en el meta-box-order_post de la opción de usuario (tabla wp_usermeta).
Nota 1: esta técnica se puede aplicar a cualquier CPT personalizado cambiando el final del indicador: meta-box-order_ [YOUR_CPT]
Nota 2: no olvide cambiar el hash en el código del complemento para aplicar su nuevo pedido a todos los usuarios existentes.