楽をしてはいけないという結果です。
functions.phpに下記のregister_taxonomy_for_object_typeコードを追加するだけで、メディアの画像にもカテゴリーやタグを設置できるようになります。
(デフォルトでONでも良さそうなんですけどね)
// メディア管理にカテゴリー項目を追加
register_taxonomy_for_object_type( ‘category’, ‘attachment’ );
// メディア管理にタグ項目を追加
register_taxonomy_for_object_type( ‘post_tag’, ‘attachment’ );
で何が問題かと言うと
上記の設定では通常記事の投稿タグ名(post_tag)と、メディアの投稿タグ名が同じものなため、検索時にメディアのタグだけを取得したいときに、Wordpressの標準機能(関数)では、それが出来ないことです。
運用前に、ちゃんと記事のタグとメディアのタグを分けて運用した方が、後々融通がききそうですね。
今回は、手を抜いてしまったので共通のタグで運用しています。。。
ただ、手抜き仕様でもメディアのタグだけを取得する方法もあります。
強引ですが直接オリジナルのSQL文(MySQL)を発行する方法で、なんとか対応することができました。
// メディア管理のタグを件数と共に取得する
SELECT wp_terms.name, count(*) AS count FROM wp_posts
LEFT JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_id
LEFT JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
LEFT JOIN wp_terms ON wp_terms.term_id = wp_term_taxonomy.term_id
WHERE wp_posts.post_type= ‘attachment’
GROUP BY wp_terms.name
ORDER BY count DESC
JOIN結合の連発なので、速度的に遅いのかも?そんな心配もありましたが、一応1万程度のタグでも、1秒以内で取得することができます。
取得後は、通常のループで回せばOKです。
あまりこの手のメディアの使い方は需要はなさそうですが・・・