Cuando estoy creando una nueva publicación, justo después de hacer clic en "Agregar nueva" , cuando aparece el editor de publicaciones, en lugar de tener que usar el menú desplegable y elegir un campo personalizado para usar, me gustaría tener algunas entradas de campo personalizadas predeterminadas Final abierto.
Visualmente, en lugar de:
Me gustaría tener algo como:
Sé que hay complementos para eso (CPT, más campos, etc.) pero me gustaría una forma simple de hacerlo con una función básica.
Intenté algo como esto (estoy usando un tipo de mensaje personalizado 'producto'):
function register_custom_fields( $post_ID ) {
global $wpdb;
if( !wp_is_post_revision( $post_ID ) ) {
add_post_meta( $post_ID, 'reference', '', true);
add_post_meta( $post_ID, 'price', '', true);
}
}
add_action('edit_product', 'register_custom_fields');
Pero eso no parece funcionar. Creo que el enlace probablemente está mal (porque edit_post
viene después de una actualización), pero no veo ningún enlace para "nueva publicación" (justo después de que el usuario haga clic en "nueva publicación" en wp admin). Hay alguna ?
¿O tal vez toda la idea está mal y hay otra manera?
fuente
Este es el método adecuado para agregar compatibilidad con campos personalizados (no se obtienen los campos en blanco al editar publicaciones)
fuente
Debe usar la acción save_post y aislar su operación comprobando el tipo de publicación, ya que se ejecuta en todos los tipos de publicación. Obviamente, hay algo más de lógica que tendrá que incorporar a esto para que funcione para usted. Probablemente debería establecer un metacampo de publicación que verifique si ha configurado los valores predeterminados una vez para que sus usuarios no se sientan frustrados si desean dejar un metacampo de publicación en blanco.
Si desea que los valores predeterminados sean nulos (como se ve en su ejemplo de código), no cree una función porque esto solo agrega sobrecarga y los metacampos de publicación no se rellenan con valores de forma predeterminada.
fuente
Estoy buscando tener una meta descripción única para cada publicación personalizada en un sitio WP que estoy desarrollando. Así que también estaba buscando un campo personalizado predeterminado y aterricé aquí.
Sé que esta es una publicación bastante antigua, pero pensé en publicar la respuesta simple que encontré en mariokostelac.com .
kg es mi espacio de nombres, puedes nombrar la función como quieras. Soy bastante nuevo en ganchos y personalización de WP en general, pero creo que wp_insert_post es el gancho que estás buscando.
fuente
get_post_type()
. Además, al hacer una comparación flexible, debe usar la sintaxis de condición de estilo YODA.get_post_type($post_id)
mejor que$_GET['post_type']
?'page' === $_GET['post_type']
. De lo contrario, cuando olvide uno solo=
, podría terminar en una situación en la que asigna un valor en lugar de comparar dos valores. Y eso terminará como basura en su base de datos. También es posible que desee utilizar===
la comparación de tipos seguros (¿es el valorpage
? Y ¿es el valor del tipostring
?)'page' === get_post_type($post_id)
:?si alguien necesita tomar un campo personalizado por tipo de publicación, dejo el código a continuación de la forma en que lo hice y funciona bien para mí :)
} add_action ('wp_insert_post', 'awh_field_type');
fuente