向图像/媒体添加类别/标签/分类支持


9

我一直在尝试为图像(或所有媒体,尽管我只关注图像)添加类别,标签或自定义分类支持。我已经部分解决了:

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')

我遇到麻烦的地方是使此信息显示在管理/仪表板中的任何位置,但直接查看媒体时除外-我希望在子菜单中或作为自定义列,或同时在两者中都可以这样做,帖子和页面。

我曾尝试manage_posts_custom_column与和一起使用manage_edit-attachment_columns,但什么也没有出现。我曾尝试add_media_page显示类似于为页面和帖子类别自动生成的页面的内容,但是在这里,我很难将已指定类别的图像提取到其中。您可以在此处看到两种尝试:http : //pastebin.com/S8KYTKRM

在此先感谢您的协助!

Answers:


8

这是最近我将自定义分类法添加到媒体库作为可排序列的方式:

// 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;
    }
}

谢谢!筛选器和动作是我所缺少的。
Roxanne准备就绪,

为了让在列可点击的每一个项目,我添加了一个<a>标签,达到了同:href="upload.php?imagetype='.$tag->slug.'"
Roxanne准备
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.