J'ai un méta-champ appelé postexpiry
et je souhaite définir la valeur sur la date de publication, + 2 semaines. Donc, si aujourd'hui était le 3 octobre, je veux que le terrain soit réglé au 17 octobre.
Je pensais créer un crochet au filtre publish_post
, mais je ne sais pas comment ajouter 2 semaines à get_the_date()
.
Je sais avec php que je peux faire quelque chose comme ceci $dateInTwoWeeks = strtotime('+2 weeks');
mais je ne sais pas comment l'utiliser avec get_the_date()
Merci!
METTRE À JOUR
J'ai essayé le code suivant, mais il n'a rien fait:
function dp_expiry() {
$dp_new_expiry_date = strtotime( '+2 weeks', strtotime( $post->post_date ) );
update_post_meta( get_the_ID(), 'postexpiry', $dp_new_expiry_date );
}
add_action( 'publish_post', 'dp_expiry' );
Aussi , mon thème nécessite que la date soit au format yyyy-mm-dd
.
MISE À JOUR 2
Ce code envoie "1209600" sur le terrain. Des idées? Merci!
add_action('publish_post', 'dp_expiry');
function dp_expiry( $data ) {
$dp_new_expiry_date = strtotime( '+2 weeks', strtotime( $post->post_date ) );
update_post_meta( $data['post_id'], 'postexpiry', $dp_new_expiry_date );
}
Essaye ça:
add_action('publish_post', 'dp_expiry');
function dp_expiry( $data ) {
/*adds 2 weeks onto the current date in unix Epoch format*/
$dp_new_expiry_date = (strtotime( current_time( 'mysql' ) ) + 1209600);
/*converts unix timstamp back to yyyy-mm-dd format like you required*/
$dp_new_expiry_date_conv = date("Y-m-d", $dp_new_expiry_date);
update_post_meta( $data['post_id'], 'postexpiry', $dp_new_expiry_date_conv );
}
get_the_ID()
est une fonction de la boucle et pourrait ne pas fonctionner ici. Vous devriez utiliser les paramètres de votre rappel à la place:
function dp_expiry( $ID, $post ) {
$dp_new_expiry_date = strtotime( '+2 weeks', strtotime( $post->post_date ) );
update_post_meta( $ID, 'postexpiry', $dp_new_expiry_date );
}
add_action( 'publish_post', 'dp_expiry', 10, 2 );
publish_post
ne fonctionne que pour les articles, pas les pages. Vous pouvez utiliser publish_{post_type}
pour un type de publication personnalisé.