Les catégories de support de type de message réelles et je veux ajouter également un support pour les balises.
J'ai ce code:
register_taxonomy(
'category_' . $slug,
array( $slug ),
array(
'hierarchical' => true,
'label' => "$slug Categories",
'singular_label' => "$slug Category",
'rewrite' => true
)
);
J'essayais donc de dupliquer cela pour les balises de support, mais cela ne fonctionne pas.
Voici le code complet pour le type de publication de portefeuille:
$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');
Les catégories que votre code crée sont une taxonomie personnalisée, et non la taxonomie post category
par défaut.
Quoi qu'il en soit, si vous souhaitez prendre en charge la taxonomie par défaut des étiquettes de publication, le nom est post_tag
et peut être ajouté via l'argument taxonomies
dans votre $portfolio_args
:
$portfolio_args = array(
'taxonomies' => array( 'post_tag' ),
// all of your other portfolio args
);
Voir register_post_type
in Codex pour plus d'informations.
Vous devez ajouter 'taxonomies' => array( 'post_tag' )
comme d'autres l'ont dit, mais vous devez également ajouter 'taxonomies' dans l'argument 'supports' pour que les zones de taxonomie apparaissent dans la page d'administration, comme suit
'supports' => array('title','editor','thumbnail','taxonomies')