¿Por qué mi taxonomía personalizada no funciona en la matriz get_taxonomies?

2

He creado una taxonomía personalizada. Está funcionando como se esperaba, además de que no se muestra en la matriz get_taxonomies . La función get_terms devuelve un error invalid taxonomy .

Quiero usar get_terms para recorrer en bucle las Doble India Pale Ales e imprimir cada nombre para un cuadro de selección.

Aquí está el código utilizado para registrarlo.

add_action( 'init', 'double_ipa_init' );

function double_ipa_init()  {
    register_taxonomy(
        'double-ipa',
        array (
            0 => 'post',
            1 => 'page',
        ),
        array(
            'hierarchical' => true,
            'label' => 'Double IPAs',
            'show_ui' => true,
            'query_var' => true,
            'rewrite' => array(
                'slug' => 'double-ipa'
            ),
        'singular_label' => 'Double IPA'
        )
    );
}

Este código está en un complemento y está en Multisite.

Gracias de antemano por tu ayuda.

    
pregunta Jeff Sebring 22.09.2011 - 05:31

2 respuestas

6

El error Invalid Taxonomy será generado por la función get_terms() . Estás registrando tu taxonomía en el gancho de acción init . Por lo tanto, debe llamar a su función get_terms() en el mismo enlace o en uno posterior.

Prueba este fragmento. Debería mostrar todos los nombres de los términos de su taxonomía, sin importar si el término está vacío.

add_action('init', 'wpse29164_registerTaxonomy');
function wpse29164_registerTaxonomy() {
    $args = array(
        'hierarchical' => true,
        'label' => 'Double IPAs',
        'show_ui' => true,
        'query_var' => true,
        'rewrite' => array(
            'slug' => 'double-ipa'
        ),
        'singular_label' => 'Double IPA'
    );

    register_taxonomy('double-ipa', array('post', 'page'), $args);

    $terms = get_terms('double-ipa', array('hide_empty' => false));
    foreach ($terms as $term) {
        echo $term->name;
    }
}
    
respondido por el rofflox 22.09.2011 - 09:45
4

Está buscando usar get_terms () antes del gancho de acción 'Init'.

Aquí está el orden de los ganchos que se ejecutan en una solicitud típica:

muplugins_loaded
registered_taxonomy
registered_post_type
plugins_loaded
sanitize_comment_cookies
setup_theme
load_textdomain
after_setup_theme
auth_cookie_malformed
auth_cookie_valid
set_current_user
**init**
widgets_init
register_sidebar
wp_register_sidebar_widget
wp_default_scripts
wp_default_stypes
admin_bar_init
add_admin_bar_menus
wp_loaded
parse_request
send_headers
parse_query
pre_get_posts
posts_selection
wp
template_redirect
get_header
wp_head
wp_enqueue_scripts
wp_print_styles
wp_print_scripts
    
respondido por el Janagaran 25.01.2013 - 09:39

Lea otras preguntas en las etiquetas