私はカスタム投稿タイプを広範囲に利用するコードを書いています - そして私はプログラムでカテゴリーを定義されたカスタム投稿タイプに追加し、そしてそのカテゴリーIDにアクセスする方法を探しています。
私はあちこちに突っ込んだが、これを達成するための強力な手段を見つけることができないように思われる - wp_create_categoryは明白な選択だろうがもちろんこれはカスタム投稿タイプをサポートしません。
いくつかの用語を事前に作成する必要がある場合は、分類法を登録するinit関数に以下を追加できます。それはレコーディング分類学において用語fooを作り出すでしょう
if (!term_exists( 'foo', 'recordings') ){
wp_insert_term( 'foo', 'recordings' );
})
register_post_type
の中にtaxonomies
パラメータを追加することができます。
register_post_type('discography',
array(
'labels' => array(
//your label stuff
),
'taxonomies' => array('recordings', 'category', 'whatever'), //add this....
'public' => true,
'show_ui' => true,
'exclude_from_search' => true,
'hierarchical' => true,
'supports' => array( 'title', 'editor', 'thumbnail' ),
'query_var' => true
)
);
代わりにregister_taxonomy_for_object_type
、 http://codex.wordpress.org/Function_Reference/register_taxonomy_for_object_typeを使用することもできます
このコードをテーマのfunctions.phpに入れてください
function post_type_discog() {
register_post_type('discography',
array(
'labels' => array(
'name' => __( 'Discography' ),
'singular_name' => __( 'Discography' ),
'add_new' => __( 'Add New' ),
'add_new_item' => __( 'Add New Discography' ),
'edit' => __( 'Edit' ),
'edit_item' => __( 'Edit Discography' ),
'new_item' => __( 'New Discography' ),
'view' => __( 'View Discography' ),
'view_item' => __( 'View Discography' ),
'search_items' => __( 'Search Discographys' ),
'not_found' => __( 'No Discographys found' ),
'not_found_in_trash' => __( 'No Discographys found in Trash' ),
'parent' => __( 'Parent Discography' ),
),
'public' => true,
'show_ui' => true,
'exclude_from_search' => true,
'hierarchical' => true,
'supports' => array( 'title', 'editor', 'thumbnail' ),
'query_var' => true
)
);
}
add_action('init', 'post_type_discog');
add_action( 'init', 'create_discog_taxonomies', 0 );
function create_discog_taxonomies()
{
// Add new taxonomy, make it hierarchical (like categories)
$labels = array(
'name' => _x( 'Recordings', 'taxonomy general name' ),
'singular_name' => _x( 'Recording', 'taxonomy singular name' ),
'search_items' => __( 'Search Recordings' ),
'popular_items' => __( 'Popular Recordings' ),
'all_items' => __( 'All Recordings' ),
'parent_item' => __( 'Parent Recording' ),
'parent_item_colon' => __( 'Parent Recording:' ),
'edit_item' => __( 'Edit Recording' ),
'update_item' => __( 'Update Recording' ),
'add_new_item' => __( 'Add New Recording' ),
'new_item_name' => __( 'New Recording Name' ),
);
register_taxonomy('recordings',array('discography'), array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'recordings' ),
));
}
このコードでは、カスタム投稿タイプとカスタムカテゴリタイプを作成できます。このコードが役に立ちますように。