4.2の「アクティビティ」ウィジェットに投稿以外の情報も表示する

(4.2.0以降)
4.2の「アクティビティ」ウィジェットに投稿以外の情報も表示する - 4.2でカスタマイズがちょっと楽になった

説明

ダッシュボードの「アクティビティ」ウィジェットは「投稿(post)」の状況を表示し、固定ページ(page)やカスタム投稿タイプの投稿記事の状況については標準では表示されない。このことに対して以前『3.8の「アクティビティ」ウィジェットに投稿以外の情報も表示する』を紹介したのだが、4.2では新しいフィルターが追加され、カスタマイズが少し容易になった。

ダッシュボードの「アクティビティ」ウィジェットには、「公開間近」として予約登録されている投稿情報が、「最近公開」として公開済みの新しい投稿情報がリスト表示される。これらの情報は、先のコラムで記載した通り/wp-admin/includes/dashboard.phpで定義されているwp_dashboard_recent_posts関数でWP_Queryクラスを使って取得しており、4.2ではこの関数内にパラメータ内容を調整できる'dashboard_recent_posts_query_args'フィルターが追加された。

$query_args = apply_filters( 'dashboard_recent_posts_query_args', $query_args );

「公開間近」と「最近公開」時の$query_argsの内容は次の通り。

連想配列キー「公開間近」時の内容「最近公開」時の内容
'post_type'"post""post"
'post_status'"future""publish"
'orderby'"date""date"
'order'"ASC""DESC"
'posts_per_page'55
'no_found_rows'truetrue
'cache_results'falsefalse
'perm'"editable""readable"

どちらの呼び出しも'post_type'は"post"なので、ここに表示したい投稿タイプを追加すれば当初の目的を果たすことができる。例えば、投稿と固定ページの両方を表示するなら、次の内容をテーマ内のfunctions.phpに記述すればよい。

add_filter( 'dashboard_recent_posts_query_args', 'my_dashboard_recent_posts_query_args', 10, 1 );
function my_dashboard_recent_posts_query_args( $query_args ) {
	$query_args['post_type'] = array( 'post', 'page' );
	return $query_args;
}

また「最近公開」時の表示件数を最大10件に変更する場合は、'post_status'が"publish"の場合のみ'posts_per_page'を10に変更する。

add_filter( 'dashboard_recent_posts_query_args', 'my_dashboard_recent_posts_query_args', 10, 1 );
function my_dashboard_recent_posts_query_args( $query_args ) {
	$query_args['post_type'] = array( 'post', 'page' );
	if ( $query_args['post_status'] == "publish" )
		$query_args['posts_per_page'] = 10;
	return $query_args;
}

WP_Queryクラスの'pre_get_posts'フィルターを利用する場合は呼び出し場所の判定が必要だったが、この'dashboard_recent_posts_query_args'フィルターでは呼び出し場所は限定されているので、パラメータを変更するためのコードを記述すればよい。

関連

  • add_filter - フィルター関数を追加する

お勧めコンテンツ

load_template(2010年6月7日 登録)

void load_template( string $_template_file [ , bool $require_once = true ] )
テンプレートファイルを読み込む。

cat_is_ancestor_of(2011年11月15日 登録)

bool cat_is_ancestor_of( mixed $cat1, mixed $cat2 )
カテゴリが子孫関係か調べる。

get_post_type_object(2011年12月8日 登録)

object get_post_type_object( $post_type )
投稿タイプ情報(オブジェクト)を取得する。

wp_set_auth_cookie(2013年5月22日 登録)

void wp_set_auth_cookie( int $user_id [ , bool $remember = false [ , mixed $secure = '' ] ] )
ログインIDをクッキーに保存する。

add_theme_page(2011年5月26日 登録)

mixed add_theme_page( string $page_title, string $menu_title, mixed string $capability, string $menu_slug [ , mixed $function = '' ] )
外観メニューにサブメニューを登録する。

最終更新日時 : 2015-05-13 14:29