Blog

【WordPress】カスタム投稿一覧管理画面にカスタムフィールドを表示

2017/11/23

カスタム投稿

備忘録です。

カスタム投稿一覧管理画面にカスタムフィールドを表示する方法です。

運営管理している「食!相模原」のカスタム投稿一覧の管理画面に電話番号を表示したくなったのでカスタムをしてみました。

参考サイト
WordPress管理画面の投稿一覧にカスタムフィールドの値を表示させる方法

参考サイトのソースコード

function.phpに記述

function manage_posts_columns($columns) {
$columns['test'] = "てすと";
return $columns;
}
function add_column($column_name, $post_id) {
if( $column_name == 'test' ) {
$stitle = get_post_meta($post_id, 'test', true);
}
if ( isset($stitle) && $stitle ) {
echo attribute_escape($stitle);
} else {
echo __('None');
}
}
add_filter( 'manage_posts_columns', 'manage_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );

参考サイトは投稿なのでカスタム投稿用に変更

functions.phpに記述

function manage_xxx_posts_columns($columns) {
$columns['test'] = "てすと";
return $columns;
}
function add_column($column_name, $post_id) {
if( $column_name == 'test' ) {
$stitle = get_post_meta($post_id, 'test', true);
}
if ( isset($stitle) && $stitle ) {
echo attribute_escape($stitle);
} else {
echo __('None');
}
}
add_filter( 'manage_xxx_posts_columns', 'manage_posts_columns' );
add_action( 'manage_xxx_posts_custom_column', 'add_column', 10, 2 );

別の方法(ソートできるようにする)

// カスタム投稿タイプ「book」にタクソノミー「genre」を表示
function add_custom_columns($columns) {
    // 新しい列を追加
    $columns['genre'] = 'ジャンル';
    return $columns;
}
add_filter('manage_book_posts_columns', 'add_custom_columns');

// タクソノミーの値を表示
function display_custom_columns($column, $post_id) {
    if ($column === 'genre') {
        $terms = get_the_terms($post_id, 'genre');
        if (!empty($terms) && !is_wp_error($terms)) {
            $term_names = wp_list_pluck($terms, 'name');
            echo implode(', ', $term_names);
        } else {
            echo 'なし';
        }
    }
}
add_action('manage_book_posts_custom_column', 'display_custom_columns', 10, 2);

// 列をソート可能にする
function sortable_custom_columns($columns) {
    $columns['genre'] = 'genre';
    return $columns;
}
add_filter('manage_edit-book_sortable_columns', 'sortable_custom_columns');

// ソートのクエリを修正
function custom_column_orderby($query) {
    if (!is_admin() || !$query->is_main_query()) {
        return;
    }
    if ($orderby = $query->get('orderby')) {
        if ($orderby === 'genre') {
            $query->set('orderby', 'taxonomy');
            $query->set('taxonomy', 'genre');
        }
    }
}
add_action('pre_get_posts', 'custom_column_orderby');

xxxは投稿タイプにしてください。「食!相模原」では店舗=shopなので、xxxをショップにし、testをtel、テストを電話番号に置き換えました。

ゼヒトモ内でのプロフィール: ROCKSTREAMゼヒトモのホームページ作成・制作サービス仕事をお願いしたい依頼者と様々な「プロ」をつなぐサービス

カテゴリー

月間アーカイブ

MORE

ミュージシャンズ・プラザ

神社仏閣ホームーページ制作

ホームページ制作問合せ