get_term_link() в Wordpress не видит ссылок на новые рубрики. В чём может быть дело?
Делаю сайт на Wordpress 5.4.1. Сделал 4 рубрики, в них несколько записей. Вывел список рубрик на страницу через get_categories() и перебор полученных категорий. И всё работало, пока не создал в админке пятую категорию.
При этом get_term_link((int)$term_taxonomy_id, 'category') вместо ссылки на новый раздел, стал возвращать WP_Error. Для старых разделов всё ок.
Recoverable fatal error: Object of class WP_Error could not be converted to string in C:\xampp\htdocs\xxx\wp-content\themes\nisarg\template\main-page.php on line 56
Посмотрел, что за ошибка:
object(WP_Error)#4796 (2) { ["errors"]=> array(1) { ["invalid_term"]=> array(1) { [0]=> string(27) "Пустой элемент" } } ["error_data"]=> array(0) { } }
То есть, не существует элемента таксономмии. Эм... в смысле? У каждого раздела в админке есть и ярлык и даже описание. Подскажите пожалуйста, где и чего не хватает?
Если удалить любой раздел и снова создать, то он тоже становится причиной ошибки.
Код целиком:
$args = array(
'parent' => 0,
'hide_empty' => 0,
'exclude' => '', // ID рубрики, которую нужно исключить
'number' => '0',
'taxonomy' => 'category', // таксономия, для которой нужны изображения
'pad_counts' => true
);
$categories = get_categories($args); // получаем все категории в виде массива
$images_raw = get_option('taxonomy_image_plugin'); // получаем все изображения в виде массива
$term_taxonomy_string = '';
foreach ($categories as $category) { // перебираем массив полученных категорий
$term_taxonomy_id = $category->term_taxonomy_id; // узнаем ID категории
$term_taxonomy_name = $category->name; // узнаем имя категории
$term_taxonomy_link = get_term_link((int)$term_taxonomy_id, 'category'); // получаем ссылку на соответствующую рубрику
$term_image_url = wp_get_attachment_url($images_raw[$term_taxonomy_id]); //url картинки
$term_taxonomy_string .= '<div class="service col-md-3 col-xs-6">
<img src="' . $term_image_url . '" alt="' . $term_taxonomy_name . '">
<a href="' . $term_taxonomy_link . '">' . $term_taxonomy_name . '</a>
</div>'; // формируем полученные данные и записываем в строку
}
echo $term_taxonomy_string; // выводим сформированную ранее строку - рубрики с изображениями