問題描述
我一直在嘗試添加類別,標籤或自定義分類支持到圖像 (或所有媒體,雖然我只關心圖像) 。我已經知道了 part-way:
add_action('init', 'create_image_taxonomies');
function create_image_taxonomies() {
$labels = array(
'name' => 'Media Category'
);
$args = array(
'labels' => $labels,
'public' => true
);
register_taxonomy('imagetype', 'attachment', $args);
}
這可以將媒體類別字段正確添加到媒體屏幕。我也確認可以使用 get_the_terms($my_attachment_id, 'imagetype')進行訪問。
遇到麻煩的是將信息顯示在管理員/儀錶板中的任何位置,除非直接查看媒體 – 我想要它在 sub-menu 或自定義列中,或者兩者兼具,可以對帖子和頁面。
我已經嘗試使用 manage_posts_custom_column 和 manage_edit-attachment_columns,但根本沒有顯示出來。我試圖使用 add_media_page 來顯示類似於頁面和帖子類別自動生成的頁面,但是在這裏我無法將圖像分配給我。你可以看到這兩個嘗試:http://pastebin.com/S8KYTKRM
提前感謝任何幫助!
最佳解決方案
以下是我最近如何將自定義分類法添加到媒體庫作為可排序列:
// Add a new column
add_filter('manage_media_columns', 'add_topic_column');
function add_topic_column($posts_columns) {
$posts_columns['att_topic'] = _x('Topic', 'column name');
return $posts_columns;
}
// Register the column as sortable
function topic_column_register_sortable( $columns ) {
$columns['att_topic'] = 'att_topic';
return $columns;
}
add_filter( 'manage_upload_sortable_columns', 'topic_column_register_sortable' );
add_action('manage_media_custom_column', 'manage_attachment_topic_column', 10, 2);
function manage_attachment_topic_column($column_name, $id) {
switch($column_name) {
case 'att_topic':
$tagparent = "upload.php?";
$tags = wp_get_object_terms( $id, 'taxonomy_name', '' );
if ( !empty( $tags ) ) {
$out = array();
foreach ( $tags as $c )
$out[] = "<a href='".$tagparent."tag=$c->slug'> " . esc_html(sanitize_term_field('name'
, $c->name, $c->term_id, 'post_tag', 'display')) . "</a>";
echo join( ', ', $out );
} else {
_e('No Topics');
}
break;
default:
break;
}
}
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。