Bonjour,
je voudrais ajouter un champ personnalisé dans wordpress uniquement si on est en train de créer un nouveau post.
En fait je veux que lorsqu'on créé un nouveau post, un champ personnalsié se remplit automatiquement avec une valeur aléatoire. Ensuite si on veut éditer le post, la valeur ne doit plus pouvoir être modifiée.
J'ai donc cette fonction pour vérifier si on est sur un nouveau post :
function is_edit_page($new_edit = null){
global $pagenow;
//make sure we are on the backend
if (!is_admin()) return false;
if($new_edit == "edit")
return in_array( $pagenow, array( 'post.php', ) );
elseif($new_edit == "new") //check for new post page
return in_array( $pagenow, array( 'post-new.php' ) );
else //check for either new or edit
return in_array( $pagenow, array( 'post.php', 'post-new.php' ) );
}
Et en ce qui concerne les champs personnalisés :
add_action('wp_insert_post', 'wpc_champs_personnalises_defaut');
function wpc_champs_personnalises_defaut($post_id)
{
if ( $_GET['post_type'] != 'page' ) {
if (is_edit_page("new")){
add_post_meta($post_id, 'Champ name', 'Contenu aléatoire', true);
}
}
return true;
}
Le résultat c'est que le champ personnalisé apparait même quand on édite le poste. Et on peut encore modifier sa valeur.
Vous avez une idée de piste ? 