webentwicklung-frage-antwort-db.com.de

Datum der letzten Aktualisierung außerhalb der Schleife abrufen

Ich versuche herauszufinden, wie das Datum, an dem ein Beitrag zuletzt aktualisiert wurde, außerhalb der Schleife angezeigt wird. Ich kann das Veröffentlichungsdatum mit get_the_time() anzeigen, aber es scheint keine "loopless" -Funktion zu geben, mit der das Datum der letzten Aktualisierung ermittelt werden kann.

Weiß jemand was heißes dazu?

3
Eckstein

Es ist unklar, ob Sie nach dem zuletzt aktualisierten Beitrag oder nach dem zuletzt aktualisierten Datum für einen bestimmten Beitrag suchen. Die Antwort von @PatJ setzt die erstere voraus. Letzteres zu tun:

$qry = new WP_Query(array('p'=>1));
var_dump($qry->posts[0]->post_modified);

Oder...

$date = $wpdb->get_var("SELECT post_modified FROM {$wpdb->posts} WHERE ID = 1");
var_dump($date);

Natürlich müssen Sie die Beitrags-ID ändern, um sie an den gesuchten Beitrag anzupassen.

4
s_ha_dum

Laut der Codex-Seite für get_the_time() muss sie in The Loop verwendet werden. Der Unterschied zwischen the_time() und get_the_time() besteht darin, dass das erstere echo() das Datum ist und das letztere es zurückgibt.

Es gibt einige Funktionen, die genau das tun, wonach Sie suchen - das Datum und die Uhrzeit der letzten Aktualisierung für einen Beitrag abrufen: get_the_modified_time() und get_the_modified_date() . Es sieht so aus, als müssten sie auch in The Loop verwendet werden.

Hier ist eine Möglichkeit, das aktualisierte Datum des letzten Posts auf Ihrer Website abzurufen:

<?php
     $args = array(
        'orderby'     => 'post_modified',
        'numberposts' => 1,
    );
    $myposts = get_posts( $args );
    if( have_posts() ) {
        while( have_posts() ) {
            the_post();
            $last_update = get_the_modified_date();
        }
    }
    echo( "Last modified on $last_update." );
?>

Wenn Sie sicher sind, dass Sie sich außerhalb von Loops befinden müssen, können Sie immer $wpdb verwenden:

<?php
    global $wpdb;
    $sql = "SELECT post_modified
            FROM $wpdb->posts
            WHERE post_type='post'
            AND post_status='publish'
            ORDER BY post_modified DESC
            LIMIT 1";
    $last_update = $wpdb->get_var( $sql );
    echo( "Last updated $last_update." );
?>
6
Pat J

Ein spätes Hinzufügen, aber das folgende Snippet kann geändert werden, um die meisten Funktionen außerhalb der Schleife zu verwenden:

/**
 * Returns a post's modified date, formatted according to $format.
 * @uses the_modified_time()
 *
 * @param int $post_id Post ID.
 * @param string $format Date format Default: "F j, Y".
 */
function wpse95769_modified_date_by_id( $post_id = 0, $format = "F j, Y" ){
    global $post;
    $post = &get_post( $post_id );
    setup_postdata( $post );

    $modified_time = get_the_modified_time( $format );

    wp_reset_postdata( $post );

    return $modified_time;
}
2
Stephen Harris

Möglicherweise geht aus vorherigen Antworten nichts hervor, aber get_post_time () und get_post_modified_time () können ein Beitragsobjekt oder eine Beitrags-ID zugewiesen werden. So erhalten Sie die veröffentlichten und geänderten Daten per Post-ID außerhalb der Schleife:

$published_time = get_post_time( $date_fmt, null, $post_id );
$modified_time = get_post_modified_time( $date_fmt, null, $post_id );

js.

Eine weitere späte Ergänzung, die hilfreich sein kann, um zu wissen, ob jemand auf der Suche ist. Mit diesen beiden Funktionen können Sie das Post-Datum und das Änderungsdatum außerhalb der Schleife ermitteln.

<?php get_post_time( $d, $gmt, $post, $translate ); ?> 

und

<?php get_post_modified_time( $d, $gmt, $post, $translate ); ?>

Weitere Informationen zu diesen beiden Funktionen finden Sie im Codex.

http://codex.wordpress.org/Template_Tags/get_post_timehttp://codex.wordpress.org/Function_Reference/get_post_modified_time

1
Johan

Was ist mit der Funktion get_lastpostmodified( $timezone ) ?

0
user2412827