<pre>
管理画面のカスタム投稿一覧にカテゴリー(ターム)を表示
function add_custom_column( $defaults ) {
$defaults[‘maindw’] = ‘ダウンロードカテゴリなど’; // 『maindw』はタクソノミースラッグ(複数設定可)
return $defaults;
}
add_filter(‘manage_dw_posts_columns’, ‘add_custom_column’); // ここの『dw』はカスタム投稿タイプスラッグ
function add_custom_column_id($column_name, $id) {
$terms = get_the_terms($id, $column_name);
if ( $terms && ! is_wp_error( $terms ) ){
$dw_links = array(); // ここの『dw』は変えなくてもOKだが、カスタム投稿タイプスラッグがおすすめ
foreach ( $terms as $term ) {
$news_links[] = $term->name;
}
echo join( “, “, $news_links );
}
}
add_action(‘manage_dw_posts_custom_column’, ‘add_custom_column_id’, 10, 2); // ここの『dw』はカスタム投稿タイプスラッグ
// 管理画面のカスタム投稿一覧にカテゴリー絞り込み 『dw』はカスタム投稿タイプスラッグ 『maindw』はタクソノミースラッグ(複数設定可)
function add_post_taxonomy_restrict_filter() {
global $post_type;
if ( ‘dw’ == $post_type ) {
?>
}
}
add_action( ‘restrict_manage_posts’, ‘add_post_taxonomy_restrict_filter’ );
// 管理画面のカスタム投稿一覧にカテゴリー絞り込み2*/
function add_custom_taxonomies_term_filter() {
global $post_type;
if ($post_type == ‘dw’) { // カスタム投稿タイプのスラッグ
$taxonomy = ‘download’; // カスタムタクソノミーのスラッグ
wp_dropdown_categories(
array(
‘show_option_all’ => ‘カテゴリー一覧’, // 自由に変更可(デフォルトの投稿に合わせております)
‘orderby’ => ‘name’, // タームを名前順で並べる(初期値: ID)
// ‘show_count’ => 1, // 各タームに属する投稿数を表示(初期値: 0/False(しない))
‘hide_empty’ => 0, // 投稿のないタームを表示する(初期値: 1/True(しない))
‘name’ => $taxonomy,
‘selected’ => get_query_var($taxonomy),
‘hierarchical’ => true, // タームを階層形式で表示する(初期値: 0/False(フラットに表示))
‘taxonomy’ => $taxonomy,
‘hide_if_empty’ => 1, // タームが一つもない場合は、ドロップダウンメニュー(絞り込み機能)を非表示(初期値: 0/False(表示))
‘value_field’ => ‘slug’
)
);
}
}
add_action(‘restrict_manage_posts’, ‘add_custom_taxonomies_term_filter’);
//もう一つ」//
function add_post_taxonomy_restrict_filter() {
global $post_type;
if ( 'blog' == $post_type ) {
?>
<select name="blog_cat">
<option value="">カテゴリー指定なし</option>
<?php
$terms = get_terms('blog_cat');
foreach ($terms as $term) { ?>
<option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
<?php } ?>
</select>
<?php
}
}
add_action( 'restrict_manage_posts', 'add_post_taxonomy_restrict_filter' );
3行目【’blog’ == $post_type】
→カスタム投稿タイプを指定します。この場合は「blog」
5行目【select name=”blog_cat”】
→タクソノミーを指定します。この場合は「blog_cat」
6行目【カテゴリー指定なし】
→プルダウンのデフォルト値です。
8行目【$terms = get_terms(‘blog_cat’);】
→タクソノミー「blog_cat」のタームを呼び出します。
9行目 呼び出したタームを「foreach」で回します。
16行目 フックする場所は restrict_manage_posts でOKです。
これで、カスタム投稿タイプ「ブログ」の管理画面に絞り込み機能が表示されます。
複数のカスタム投稿タイプに設定する場合
function add_post_taxonomy_restrict_filter() {
global $post_type;
if ( 'blog' == $post_type ) {
?>
<select name="blog_cat">
<option value="">カテゴリー指定なし</option>
<?php
$terms = get_terms('blog_cat');
foreach ($terms as $term) { ?>
<option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
<?php } ?>
</select>
<?php
}
else if ( 'diary' == $post_type ) {
?>
<select name="diary_day">
<option value="">カテゴリー指定なし</option>
<?php
$terms = get_terms('diary_day');
foreach ($terms as $term) { ?>
<option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
<?php } ?>
</select>
<?php
}
}
add_action( 'restrict_manage_posts', 'add_post_taxonomy_restrict_filter' );
<pre>