Как я могу получить массив пользовательских категорий в Wordpress? - PullRequest
0 голосов
/ 17 октября 2018

Я зарегистрировал пользовательскую таксономию как часть моего пользовательского типа записи, но при передаче ее на get_categories() она возвращает пустой массив.Есть идеи, почему?

// Register FAQ Categories taxonomy
function bv_faq_register_categories() {
    register_taxonomy(
        'faq-category',
        'faq',
        array(
            'label'        => 'Categories',
            'rewrite'      => array('slug' => 'faq-category'),
            'hierarchical' => true
        )
    );
}
add_action('init', 'bv_faq_register_categories');

// Category view
$categories = get_categories(array(
    'taxonomy' => 'faq-category'
));

$categories возвращает пустой массив.

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

Ваш код выглядит нормально.Вы присвоили эту категорию какой-либо записи / тип сообщения?Если нет, то вы получите пустой результат.для тестирования вы можете установить 'hide_empty' = false следующим образом:

// Category view
$categories = get_categories(array(
    'taxonomy' => 'faq-category',
    'hide_empty' => false // set it true
));

Также вы можете использовать функцию get_terms().

0 голосов
/ 17 октября 2018

Как @AD Styles сказал, что я буду использовать get_terms с использованием пользовательской таксономии, чтобы немного расширить, вот пример кода:

<?php

$post_type = 'faq-category';

// Get all the taxonomies for this post type
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type ) );

foreach( $taxonomies as $taxonomy ) : 

    // Gets every "category" (term) in this taxonomy to get the respective posts
    $terms = get_terms( array( 
    'taxonomy' => $taxonomy,
    'parent'   => 0
    ) );

    foreach( $terms as $term ) :

        echo "<h1>".$term->name."</h1>";

    endforeach;

endforeach;

?>
0 голосов
/ 17 октября 2018

Вы пробовали вместо этого get_terms?

$categories = get_terms( 'faq-category', array(
    'orderby'    => 'count',
    'hide_empty' => 0
) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...