今回はWordPressのカスタムフィールドに格納しているメタデータをWordPress管理ページの記事一覧のカラムに閲覧数の項目を追加するプログラムを作ります。
WordPressは既存で閲覧数を取得することができないので、閲覧数を取得するプログラムをまだ実装していない方はこちらの記事をご覧ください。
目次
投稿管理画面上にカラムを追加する
カラムを追加するには関数を作りフィルターフックに追加する必要があります。まず関数を作っていきます。以下のコードをfunctions.phpに追加してください。
function add_new_columns( $colunms ){
$coluns['post_views_count'] = '閲覧数';
echo '<style>.column-post_views_count{width:15%}</style>;
return $coluns;
}
投稿管理ページの記事一覧は、投稿・固定ページ・カスタム投稿ページの3種類あり、それぞれでフィルターフックの追加する先が異なります。
上のコードに続いて以下の追加したい投稿管理ページに適するコードを追加してください。
// 投稿ページとカスタム投稿ページ
add_filter( 'manage_posts_columns','add_new_columns' );
// 固定ページ
add_filter( 'manage_pages_columns','add_new_columns' );
// カスタム投稿ページ
add_filter( 'manage_{$post_type}_posts_columns','add_new_colums' );
{$post_type}の部分に追加したいカスタム投稿のスラッグを代入してください。
追加したカラムにメタデータを表示させる
次にカスタムフィールドのメタデータを表示するプログラムを追加します。以下のコードをfunction.phpに追加してください。
function add_new_column( $column_name,$post_id ){
if( $colum_name == 'post_views_count' ){
$views = get_post_meta( $post_id,'post_views_count',true );
}
if( isset( $views ) ){
if( $views ){
echo attribute_escape( $views );
}else{
echo 'まだ閲覧されていません';
}
}
}
こちらもカラムの追加と同様に管理ページによってフィルターフックが異なるので条件にあったコードをfunction.phpに追加してください。
// 投稿ページとカスタム投稿ページ
add_action( 'manage_posts_custom_column','add_new_column' );
// 固定ページ
add_action( 'manage_page_custom_column','add_new_column' );
// カスタム投稿ページ
add_action( 'manage_{$post_type}_posts_custom_column','add_new_column' );
まとめ
以上で投稿管理ページに閲覧数を表示することができます。
今回作った'add_new_column'関数に今週の閲覧数、今月の閲覧数などと追加することもできます。今週の閲覧数、今月の閲覧数の取得方法は追って記事にしようと思います!