web-dev-qa-db-fra.com

Comment obtenir la date de post-création?

Je suppose obtenir la première révision d'un message particulier et obtenir la date, non?

Comment faire ça?

4
Max

Le post_date et le post_date_gmt servent de date de création du message. Pour les messages programmés, il s'agira de la date à laquelle le message sera publié.

Il n'existe pas de méthode native fiable pour déterminer la date à laquelle une publication programmée a été ajoutée. Pour les publications programmées, vous pouvez essayer les dates post_modified ou post_modified_gmt, car elles correspondent à la première publication de la publication. Vous devez vous rappeler que ceci n'est pas fiable car cette date changera quand un message est modifié

Une autre méthode (également peu fiable) consiste à utiliser des révisions. Si vous avez activé les révisions, lorsqu'une publication est planifiée ou publiée, une révision ultérieure est enregistrée. Cette révision, qui sera enregistrée après la publication programmée lorsque le bouton programmé est cliqué, conservera la date de publication actuelle à laquelle le bouton programmé a été cliqué. Vérifiez la photo ci-dessous

 enter image description here 

Si vous avez besoin d’un moyen fiable, vous devrez écrire votre propre fonction personnalisée pour enregistrer l’heure exacte lorsque vous cliquez sur le bouton Planifié pour planifier une publication.

5
Pieter Goosen

J'avais besoin de la même information et j'ai tout compris par moi-même. Vous devez créer une requête personnalisée pour obtenir le premier _wp_old_date de la table postmeta comme suggéré par @dipak_pusti. Exécutez l'instruction suivante:

global $wpdb;
$post_id = 1234;
$meta_key = '_wp_old_date';
$post_create_date = $wpdb->get_var( $wpdb->prepare(
    "
        SELECT MIN($wpdb->postmeta.meta_value) as post_create_date
        FROM $wpdb->postmeta
        WHERE $wpdb->postmeta.post_id = %d
            AND $wpdb->postmeta.meta_key = %s
    ",
    $post_id,
    $meta_key
) );

if(is_null($post_create_date)) {
    $post_create_date = get_the_date('Y-m-d', $post_id);
}

echo "<p>Post create date is: {$post_create_date}</p>";

Remarque: Si le _wp_old_date est NULL (cela signifie que la date de publication n'a jamais été modifiée), vous pouvez utiliser la date à partir de get_the_date('Y-m-d', $post_id).

1
haze

Lorsque j'étais coincé avec le même type de cas que le vôtre, j'ai trouvé une clé méta _wp_old_date avec une méta-valeur représentant une date.

En recherchant cela, j'ai trouvé qu'une fonction est utilisée pour stocker l'ancienne valeur lorsqu'un post ou un objet est modifié.

https://wpseek.com/function/wp_check_for_changed_dates/

Je sais que c'est une réponse très tardive, mais que cela pourrait aider les autres à l'avenir. :)

0
dipak_pusti

Utilisez get_the_date(); pour obtenir la date définie dans la méta-boîte "Publier" dans le champ "Publiée le ..". Il s’agit généralement de la date à laquelle l’utilisateur a créé la publication, sauf s’il la modifie.

0
Fleuv