実際の投稿タイプはカテゴリをサポートしており、タグのサポートも追加したいと思います。
私はこのコードを持っています:
register_taxonomy(
'category_' . $slug,
array( $slug ),
array(
'hierarchical' => true,
'label' => "$slug Categories",
'singular_label' => "$slug Category",
'rewrite' => true
)
);
そのため、タグをサポートするためにこれを複製しようとしましたが、機能していません。
これはポートフォリオの投稿タイプのコード全体です。
$portfolio_slugs = get_option("zeitgeist_portfolio_slug");
if(is_array($portfolio_slugs))
foreach ( $portfolio_slugs as $slug ){
add_action('init', 'create_portfolio');
register_taxonomy("category_".$slug, array($slug),
array("hierarchical" => true, "label" => "$slug Categories", "singular_label" => "$slug Category", "rewrite" => true));
register_taxonomy("tags_".$slug, array($slug), array("hierarchical" => false, "label" => "$slug Tags", "singular_label" => "$slug Tags", "rewrite" => true));
function create_portfolio() {
$portfolio_slugs = get_option("zeitgeist_portfolio_slug");
$portfolio_counter = 0;
$portfolio_names = get_option("zeitgeist_portfolio_name");
foreach ( $portfolio_slugs as $slug ){
$portfolio_args = array(
'label' => __("Portfolio '".$portfolio_names[$portfolio_counter]."'"),
'singular_label' => __($portfolio_names[$portfolio_counter++]),
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => $slug, 'with_front' => true),
'supports' => array('title', 'editor', 'thumbnail', 'author', 'comments', 'excerpt')
);
register_post_type($slug,$portfolio_args);
}
}
function portfolioSingleRedirect(){
global $wp_query;
$queryptype = $wp_query->query_vars["post_type"];
$portfolio_slugs = get_option("zeitgeist_portfolio_slug");
if(is_array($portfolio_slugs))
foreach ( $portfolio_slugs as $slug ){
if ($queryptype == $slug){
if (have_posts()){
global $pcat;
$pcat = "category_".$slug;
require(TEMPLATEPATH . '/single_portfolio.php');
die();
}else{
$wp_query->is_404 = true;
}
}
}
}
add_action("template_redirect", 'portfolioSingleRedirect');
コードが作成するカテゴリはカスタム分類法であり、デフォルトの投稿category
分類法ではありません。
とにかく、デフォルトの投稿タグ分類法のサポートを追加したい場合は、名前はpost_tag
であり、$portfolio_args
のtaxonomies
引数で追加できます。
$portfolio_args = array(
'taxonomies' => array( 'post_tag' ),
// all of your other portfolio args
);
詳しくはCodexの register_post_type
を参照してください。
他の人が言っているように'taxonomies' => array( 'post_tag' )
を追加しなければなりませんが、管理ページに表示されるように分類ボックスの 'supports'引数に 'taxonomies'を追加する必要があります。
'supports' => array('title','editor','thumbnail','taxonomies')