Получить дату последнего обновления за пределами цикла

Я пытаюсь понять, как отображать дату, когда последнее сообщение обновлялось за пределами цикла. Я могу показать опубликованную дату, используя get_the_time() но, похоже, нет функции «без петли», чтобы получить дату последнего обновления.

Кто-нибудь знает, что нужно делать это?

Неясно, ищете ли вы последнее обновленное сообщение или последнюю обновленную дату для определенного сообщения. Ответ от @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); 

Конечно, вам нужно изменить идентификатор сообщения, чтобы он соответствовал сообщению, которое вы ищете.

Согласно странице Codex для get_the_time() , ее необходимо использовать в The Loop. Разница между the_time() и get_the_time() заключается в том, что предыдущее echo() get_the_time() дату, а последнее возвращает ее.

Есть несколько функций, которые делают то, что я думаю, что вы ищете, – получите последнюю обновленную дату и время для сообщения: 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." ); ?> 

Позднее дополнение, но следующий фрагмент может быть изменен для использования большинства функций за пределами цикла:

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

Еще одно позднее дополнение, которое может быть полезно узнать, если кто-то ищет. Вы можете использовать эти две функции, чтобы получить дату публикации и измененную дату вне цикла.

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

а также

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

Вы можете больше узнать об этих двух функциях в кодексе.

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

Это может быть неясно из предыдущих ответов, но get_post_time () и get_post_modified_time () может быть предоставлен почтовый объект или почтовый идентификатор. Итак, чтобы получить опубликованные и измененные даты по идентификатору post за пределами цикла:

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

JS.

Как насчет функции get_lastpostmodified( $timezone ) ?