Quand je fais quelque chose comme ça (dans ma fonction de plugin à l'intérieur de WP admin):
$metaboxes = get_post_meta( $post_id );
echo "<pre>";
print_r($metaboxes);
echo "</pre>";
die();
Je reçois toutes mes métaboxes info sauf le datetime .
Pourquoi donc? Où sont-ils stockés et comment puis-je y accéder?
J'utilise ce plugin http://www.deluxeblogtips.com/meta-box/ pour ajouter des champs méta personnalisés à mon type de contenu, comme:
array(
'name' => 'Date and time:',
'type' => 'datetime',
'id' => "rw_datetime",
),
Je souhaite enregistrer le champ datetime
si un autre champ a une certaine valeur à l'aide de la fonction save_post
et que cela ne fonctionne pas pour datetime pour une raison quelconque:
update_post_meta($post_id, 'rw_datetime', '2013-08-28 11:11' );
Mais quelque chose comme ceci pour un champ de texte fonctionne bien:
update_post_meta($post_id, 'rw_some_textfield', 'This is working!' );
Pourquoi donc? Pourquoi ne fonctionne-t-il pas pour datetime et pourquoi fonctionne-t-il pour d'autres types de champs?
Comment puis-je récupérer la valeur datetime si je connais le $post_id
, puis mettre à jour ce champ à l'aide de la fonction update_post_meta()
?
UPDATE:
Code de ma fonction save_post:
add_action( 'save_post', 'things_before_save' );
function things_before_save( $post_id ) {
// No auto saves
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
// make sure the current user can edit the post
if( ! current_user_can( 'edit_post' ) ) return;
// assure the post type
if ( ! get_post_type($post_id) == 'cards' ) return;
// working
update_post_meta($post_id, 'rw_some_textfield', 'This is working!' );
// not working ;(
update_post_meta($post_id, 'rw_datetime', '2013-08-28 11:11' );
}
Notez que je ne travaille avec aucune variable, mais uniquement avec les chaînes This is working!
et 2013-08-28 11:11
pour éliminer les erreurs possibles.
Donc, je suppose que le problème est que rw_datetime est stocké ailleurs et pas au même endroit que les autres métaboxes.
il semble que vous utilisiez ce plugin de manière incorrecte. Il n'est pas nécessaire de raccrocher à save_post
car le plugin le fait pour vous. Enregistrez simplement votre meta box et vos champs. Pour récupérer les valeurs, cochez ceci