De ce Taxonomia mea Personalizată funcțională nu apare în array-ul get_taxonomies?

22 sept. 2011, 06:31:06
Vizualizări: 28.1K
Voturi: 7

Am creat o taxonomie personalizată. Funcționează exact cum mă așteptam, cu excepția faptului că nu apare în array-ul get_taxonomies. Funcția get_terms returnează o eroare de tip taxonomie invalidă.

Vreau să folosesc get_terms pentru a parcurge Double India Pale Ales și a afișa fiecare nume într-o casetă de selectare.

Iată codul folosit pentru înregistrare.

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'
        )
    );
}

Acest cod este într-un plugin și rulează pe Multisite.

Mulțumesc anticipat pentru ajutor.

1
Comentarii

postează codul tău pentru get_taxonomies și get_terms. Încearcă și să setezi argumentul public la true.

Assad Nazar Assad Nazar
22 sept. 2011 10:17:07
Toate răspunsurile la întrebare 3
5
14

Eroarea Invalid Taxonomy va fi generată de funcția get_terms(). Înregistrați taxonomia pe hook-ul de acțiune init. Prin urmare, trebuie să apelați funcția get_terms() pe același hook sau unul ulterior.

Încercați acest fragment de cod. Ar trebui să afișeze toate numele termenilor din taxonomia dvs., indiferent dacă termenul este gol sau nu.

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;
    }
}
22 sept. 2011 10:45:28
Comentarii

Dacă am înțeles corect, sugerezi să renunț la învelișul funcției și să o rulez direct din plugin. Voi încerca acest lucru.

Jeff Sebring Jeff Sebring
22 sept. 2011 18:44:42

Eliminarea învelișului duce la această eroare - Fatal error: Call to a member function add_rewrite_tag() on a non-object

Jeff Sebring Jeff Sebring
22 sept. 2011 19:27:34

Problema pe care o am este legată de ordinea în care rulez codul care construiește paginile față de taxonomii. Soluția va consta în găsirea unei metode creative de a rearanja memoria către funcțiile mele.

Jeff Sebring Jeff Sebring
22 sept. 2011 20:14:13

@Jeff Codul de mai sus ar trebui să fie încapsulat și într-o funcție și apelat pe action hook-ul init. Îmi cer scuze pentru confuzie.

Roman Roman
22 sept. 2011 20:15:45

Da, de fapt nu încercasem să înregistrez din plugins_loaded. Problema era cu locul unde ruleam codul pentru pagina de opțiuni. Mulțumesc pentru ajutor.

Jeff Sebring Jeff Sebring
23 sept. 2011 19:38:17
0

Doriți să utilizați get_terms() înainte de acțiunea hook 'Init'.

Iată ordinea în care rulează hook-urile într-o cerere tipică:

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
25 ian. 2013 10:39:08
0

Am avut aceeași problemă înainte, dar folosirea WP_Term_Query m-a ajutat să obțin ceea ce aveam nevoie. Încearcă și tu, ar trebui să funcționeze. Mai multe detalii aici: https://developer.wordpress.org/reference/classes/WP_Term_Query/__construct/

27 feb. 2019 16:48:21