Як зробити

Пусто або помилка invalid taxonomy при використанні get_terms()

Pinterest LinkedIn Tumblr

В процесі розробки зіштовхнулися з проблемою, що список доступних “термінів” однієї з кастомних таксономій не виводився (був пустий список), код який ми використовували для формування списку виглядав так:

$termsargs = array(
            'taxonomy' => 'casecat',
            'hide_empty' => false,
        );

$terms = get_terms($termsargs);

if ($terms && !is_wp_error($terms)) {
        foreach ($terms as $term) {
                echo $term->name;
        }
} Code language: PHP (php)

Вивівши результат роботи функції get_terms , а точніше помилку, яку генерувала ця функція, ми побачили :

WP_Error Object ( [errors] => Array ( [invalid_taxonomy] => Array ( [0] => Невірна таксономія. ) ) [error_data] => Array ( ) [additional_data:protected] => Array ( ) )Code language: PHP (php)

Причиною виявилось те, що код виконувався раніше, ніж реєструвалася таксономія.

Функція, в якій був прописаний код, та файл, в якому реєструвалась таксономія, обидва викликалися/підключалися через екшен initadd_action( 'init', 'function_name' ); , тож ми “підвищили” пріоритет підключення функції з таксономією наступним чином (додавши третім параметром пріоритет ):

add_action( 'init', 'create_tax', 0 );Code language: JavaScript (javascript)

Дмитро Кондрюк в веб-індустрії з 2003 року. В 2009р. заснував проект Український WordPress (що у подальшому став офіційним сайтом команди локалізації WordPress в Україні). З 2010 року засновник і технічний директор проекту Український хостинг для WordPress (WPHost.me) - повноцінного хостинг-сервісу, максимально оптимізованого на використання CMS WordPress.

Коментувати