การเพิ่มหมวดหมู่ / แท็ก / Taxonomy รองรับรูปภาพ / สื่อ


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

สิ่งนี้จะเพิ่มฟิลด์ Media Category ลงในหน้าจอสื่ออย่างถูกต้อง get_the_terms($my_attachment_id, 'imagetype')ฉันยังได้รับการยืนยันนี้สามารถเข้าถึงได้ด้วย

สิ่งที่ฉันกำลังประสบปัญหาคือการได้รับข้อมูลนี้เพื่อแสดงที่ใดก็ได้ใน admin / แดชบอร์ดยกเว้นเมื่อดูสื่อโดยตรง - ฉันต้องการมันในเมนูย่อยหรือเป็นคอลัมน์ที่กำหนดเองหรือทั้งสองอย่างที่สามารถทำได้สำหรับ โพสต์และหน้า

ฉันได้ลองใช้manage_posts_custom_columnไปด้วยmanage_edit-attachment_columnsแต่ไม่มีอะไรปรากฏขึ้น ฉันพยายามใช้add_media_pageเพื่อแสดงบางอย่างเช่นหน้าที่สร้างขึ้นโดยอัตโนมัติสำหรับหมวดหมู่ของหน้าและโพสต์ แต่ที่นี่ฉันมีปัญหาในการดึงภาพที่ฉันได้รับหมวดหมู่ คุณสามารถเห็นความพยายามทั้งสองได้ที่นี่: http://pastebin.com/S8KYTKRM

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือใด ๆ !

คำตอบ:


8

นี่คือวิธีที่ฉันเพิ่งเพิ่ม taxonomy ที่กำหนดเองในไลบรารีสื่อเป็นคอลัมน์ที่เรียงลำดับได้:

// 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 Ready

ที่จะทำให้รายการในคอลัมน์คลิกได้แต่ละฉันเพิ่ม<a>แท็กถึง $ href="upload.php?imagetype='.$tag->slug.'"ออกมาพร้อมกับ:
Roxanne Ready
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.