web-dev-qa-db-fra.com

Dernière fonction de date mise à jour

Je veux afficher le "dernière date de mise à jour" au recto de l'article et de la page.
J'ai donc ajouté le code suivant dans le fichier functions.php.

function wpb_last_updated_date( $content ) {
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 86400) {
$updated_date = get_the_modified_time('F jS, Y');
$updated_time = get_the_modified_time('h:i a');
$custom_content .= '<p class="last-updated" style="text-align:right">Last updated on '. $updated_date . ' at '. $updated_time .'</p>';
}
    $custom_content .= $content;
    return $custom_content;
}

add_filter( 'the_content', 'wpb_last_updated_date' );

Cela fonctionne, mais je ne veux pas afficher ça sur ma page d’accueil.

Comment puis-je faire ?

1
Kenny

Vous pouvez vérifier votre "page d'accueil" au début de votre fonction en utilisant is_home() et/ou is_front_page() et simplement renvoyer le contenu d'origine sans date. Voir is_home vs is_front_page

function wpb_last_updated_date( $content ) {
  if ( is_home() || is_front_page() ) return $content; //homepage return content without date

  // your original function code

}

En variante, vous pourriez incorporer votre add_filter dans une instruction if

1
scytale

J'ai finalement résolu le problème !!

function wpb_last_updated_date( $content ) {
if( is_front_page() || is_home() ) {
    return $content;
}
if( is_page(array(1017,927))){  
    return $content;    
}
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 86400) {
$updated_date = get_the_modified_time('F jS, Y');
$updated_time = get_the_modified_time('h:i a');
$custom_content .= '<p class="last-updated">Last updated on '. $updated_date . ' at '. $updated_time .'</p>';  
}
    $custom_content .= $content;
    return $custom_content;
}
add_filter( 'the_content', 'wpb_last_updated_date' );
0
Kenny