Lorsque je crée un nouveau message, juste après avoir cliqué sur "Ajouter un nouveau" , lorsque l'éditeur de message s'affiche, au lieu d'avoir à utiliser le menu déroulant et à choisir un champ personnalisé à utiliser, j'aimerais avoir déjà des entrées de champ personnalisé par défaut extrémité ouverte.
Visuellement, au lieu de:
J'aimerais avoir quelque chose comme:
Je sais qu'il existe des plugins pour cela (CPT, Plus de champs, etc.) mais je voudrais un moyen simple de le faire avec une fonction de base.
J'ai essayé quelque chose comme ça (j'utilise un «produit» de type de message personnalisé):
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');
Mais cela ne semble pas fonctionner. Je pense que le hook est probablement faux (car edit_post
vient après une mise à jour), mais je ne vois aucun hook pour "new post" (juste après que l'utilisateur clique sur "new post" dans wp admin). Y a-t-il ?
Ou peut-être que l'idée est fausse et qu'il y a une autre façon?
la source
C'est la bonne méthode pour ajouter la prise en charge des champs personnalisés (vous n'obtenez pas les champs vides lors de la modification des messages)
la source
Vous devez utiliser l'action save_post et isoler votre opération en vérifiant le type de publication car elle s'exécute sur tous les types de publication. Il y a évidemment plus de logique que vous devrez intégrer à cela pour que cela fonctionne pour vous. Vous devriez probablement définir un post-méta-champ qui vérifie si vous avez défini les valeurs par défaut une fois afin que vos utilisateurs ne soient pas frustrés s'ils souhaitent laisser un post-méta-champ vide.
Si vous souhaitez que les valeurs par défaut soient nulles (comme illustré dans votre exemple de code), ne créez pas de fonction, car cela ajoute simplement des frais généraux et les champs de métadonnées ne sont pas remplis de valeurs par défaut.
la source
Je cherche à avoir une méta description unique pour chaque publication personnalisée sur un site WP que je développe. Je cherchais donc également un champ personnalisé par défaut et j'ai atterri ici.
Je sais que c'est un assez vieux post, mais je pensais que je posterais la réponse simple que j'ai trouvée sur mariokostelac.com .
kg est mon espace de noms, vous pouvez nommer la fonction comme vous le souhaitez. Je suis assez nouveau dans les hooks et la personnalisation de WP en général, mais je pense que wp_insert_post est le hook que vous recherchez.
la source
get_post_type()
. En outre, lorsque vous effectuez une comparaison lâche, vous devez utiliser la syntaxe de condition de style YODA.get_post_type($post_id)
meilleur que$_GET['post_type']
?'page' === $_GET['post_type']
. Sinon, lorsque vous oubliez un seul,=
vous pourriez vous retrouver dans une situation où vous attribuez une valeur au lieu de comparer deux valeurs. Et cela finira comme une poubelle dans votre base de données. Vous pouvez également utiliser la comparaison===
sécurisée de type (la valeurpage
? Et la valeur de typestring
?)'page' === get_post_type($post_id)
?si quelqu'un a besoin de prendre un champ personnalisé par type de message, je laisse le code ci-dessous comme je l'ai fait et fonctionne bien pour moi :)
} add_action ('wp_insert_post', 'awh_field_type');
la source