WordPressのループを最新更新日時で表示する方法

 2021.05.13
[最終更新日]2021/05/16

WordPressで一覧ページ(category.phpやarchive.php)で表示するときは、基本的には投稿の公開日時にて表示されるようになっておりますが、記事の更新を頻繁に行うサイトなどでその都度、投稿の公開日時を変更しないと表示が変わない時に一覧の表示を公開日時ではなく、最終更新日(DB上では**_postsの[post_date_gmt])でデータを取得するようにする方法です。

管理画面の投稿一覧に最終更新日を表示するようにする

下記をfunctions.phpに追記する

/***************************************

 最終更新日出力

****************************************/
function last_modified_admin_column( $columns ) {
 $columns['modified-last'] =__( '最終更新日', 'aco' );
 return $columns;
}
add_filter( 'manage_edit-post_columns', 'last_modified_admin_column' );

function sortable_last_modified_column( $columns ) {
 $columns['modified-last'] = 'modified';
 return $columns;
}
add_filter( 'manage_edit-post_sortable_columns', 'sortable_last_modified_column' );

function last_modified_admin_column_content( $column_name, $post_id ) {
 if ( 'modified-last' != $column_name )
 return;
 
 $modified_date = the_modified_date( 'Y年Md日Ag時i分' );
 echo $modified_date;
}
add_action( 'manage_posts_custom_column', 'last_modified_admin_column_content', 10, 2 );

メインループを最新更新日で表示する

下記をfunctions.phpに追記する

/***********************************

投稿の並びを最終更新日

***********************************/

function my_sort_order_by_modifired ( $query ) {
	if ( $query->is_main_query() ) {
		$query->set( 'orderby', 'modified' );
	}
}
add_action( 'pre_get_posts', 'my_sort_order_by_modifired' );

この記事へのコメント

Leave a Reply

Your email address will not be published. Required fields are marked *