Registro de taxonomía de etiquetas para un tipo de publicación personalizada

2

Las categorías de soporte de tipo de publicación real y quiero agregar también soporte para etiquetas.

Tengo este código:

register_taxonomy(
    'category_' . $slug,
    array( $slug ), 
    array(
        'hierarchical' => true,
        'label' => "$slug Categories",
        'singular_label' => "$slug Category",
        'rewrite' => true
    )
);

Entonces, estaba tratando de duplicar esto para las etiquetas de soporte pero no está funcionando.

Este es el código completo para el tipo de publicación de la cartera:

$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');
    
pregunta agis 18.01.2013 - 22:06

2 respuestas

5

Las categorías que crea su código es una taxonomía personalizada, no la taxonomía predeterminada category .

De todos modos, si desea agregar soporte para la taxonomía predeterminada de las etiquetas de correos, el nombre es post_tag y se puede agregar a través del argumento taxonomies en su $portfolio_args :

$portfolio_args = array(
    'taxonomies' => array( 'post_tag' ),
    // all of your other portfolio args
);

Consulte register_post_type en Codex para obtener más información.

    
respondido por el Milo 18.01.2013 - 22:57
0

Debe agregar 'taxonomies' => array( 'post_tag' ) como han dicho otros, pero también debe agregar 'taxonomías' en el argumento 'apoyos' para que las casillas de taxonomía aparezcan en la página de administración, por el estilo

'supports' => array('title','editor','thumbnail','taxonomies')
    
respondido por el Spartacus 25.09.2015 - 00:11

Lea otras preguntas en las etiquetas