在循环之外获取上次更新的日期

时间:2013-04-14 作者:Eckstein

我想知道如何显示帖子最后一次在循环之外更新的日期。我可以使用get_the_time() 但似乎没有“无环”函数来获取上次更新的日期。

有人知道hot会这么做吗?

6 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

目前还不清楚您是在寻找最后更新的帖子还是某个特定帖子的最后更新日期。@PatJ的回答假设了前者。要执行后者:

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

$date = $wpdb->get_var("SELECT post_modified FROM {$wpdb->posts} WHERE ID = 1");
var_dump($date);
当然,您需要更改帖子ID以匹配您正在查找的帖子。

SO网友:Pat J

根据the Codex page for get_the_time(), 它需要在循环中使用。两者之间的区别the_time()get_the_time() 是前者吗echo()es日期,后者返回日期。

有几个函数可以实现我认为您需要的功能--获取帖子的最后更新日期和时间:get_the_modified_time()get_the_modified_date(). 看起来它们也需要用于The Loop.

这里有一种方法可以获取您网站中最新帖子的更新日期:

<?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." );
?>
如果您确定需要在任何循环之外,您可以始终使用$wpdb:

<?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." );
?>

SO网友:Stephen Harris

最新添加,但可以修改以下代码段以使用循环外的大多数函数:

/**
 * 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;
}

SO网友:Johan

另一个迟来的补充,这可能有助于了解是否有人在看。您可以使用这两个函数在循环外获取发布日期和修改日期。

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

<?php get_post_modified_time( $d, $gmt, $post, $translate ); ?>
您可以在codex中阅读有关这两个函数的更多信息。

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

SO网友:Jean-Sebastien Morisset

从前面的回答中可能不太清楚,但可以为get\\u post\\u time()和get\\u post\\u modified\\u time()指定一个post对象或post ID。因此,要在循环之外通过post ID获取发布和修改的日期,请执行以下操作:

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

SO网友:user2412827
结束

相关推荐

using the loop on a page

我试图在页面顶部显示最近一篇文章的摘录,以及之前4篇文章的标题,并在下面显示页面的内容。我有一个很好的解决方案,但我不确定是否需要重置查询,以及如何获取最近帖子的摘录和前4篇文章的标题。Here\'s the page with post titles at top (B\'s recommended articles) 页面的内容(可以编辑)在下面。这是密码http://pastebin.com/41x30Uyb