web-dev-qa-db-fra.com

Mettre à jour la date de publication à chaque nouveau commentaire?

Je souhaite mettre à jour un post à chaque nouveau commentaire, de sorte que le Last Modified Date soit toujours à jour sur le plan du site.

Comment puis-je faire ceci?

Merci.

3
Burak Birer

D'après ce que j'ai compris, vous souhaitez modifier l'heure de modification du message lorsqu'un commentaire est laissé sur votre message. Pour cela, vous devez vous accrocher au crochet wp_insert_comment et mettre à jour la date du message manuellement:

add_action('wp_insert_comment','update_post_time',99,2);
function update_post_time($comment_id, $comment_object) {
    // Get the post's ID
    $post_id = $comment_object->comment_post_ID;
    // Double check for post's ID, since this value is mandatory in wp_update_post()
    if ($post_id) {
        // Get the current time
        $time = current_time('mysql');
        // Form an array of data to be updated
        $post_data = array(
            'ID'           => $post_id, 
            'post_modified'   => $time, 
            'post_modified_gmt' =>  get_gmt_from_date( $time )
        );
        // Update the post
        wp_update_post( $post_data );
    }
}

Notez que cela créera une révision pour le post chaque fois qu'un commentaire est créé.

Si votre plugin sitemap utilise le post_date au lieu de post_modified, vous pouvez l'utiliser à la place:

$post_data = array(
    'ID'           => $post_id, 
    'post_date'   => $time, 
    'post_date_gmt' =>  get_gmt_from_date( $time )
);

Cependant, cela pourrait causer des problèmes et la commande de la poste dans les archives et la page d'accueil, car cela change la date de la publication creationdate, pas la date de modification).

3
Jack Johansson

Cela peut changer l'ordre des messages sur votre page principale, en fonction de votre thème.

Il existe des moyens pour afficher les liens vers les pages contenant des commentaires récents.

Mais, vous aurez besoin que votre thème (thème enfant, espérons-le, puisque vous ne voulez pas changer de code de thème) ajoute du code qui utilise un crochet pour la sauvegarde de commentaire. Par exemple, vous pouvez utiliser le hook wp_insert_comment(), comme décrit dans ce lien: https://codex.wordpress.org/Plugin_API/Action_Reference/wp_insert_comment

Il existe d'autres crochets pouvant être utilisés lors de la sauvegarde d'un commentaire, selon le moment où vous souhaitez que les choses se passent.

1
Rick Hellewell