Intereting Posts
Не удается получить доступ к панели мониторинга после обновления Worpress 3.3? Список all-childpages на родительской странице И список дочерних страниц на самой дочерней странице, но не текущий? Почему здесь не работает мой if / elseif / else? Как проверять почтовый метафайл / расширение (файл файла видеофайла и т. Д.) Попытка сортировать и отображать категории (не сообщения) по настраиваемому полю: 'order' Использование настраиваемого поля внутри shortocde Как получить все пользовательские поля любого типа сообщений Шаблон страницы не загружает правильный файл CSS Добавить вкладку медиабиблиотеки comments_number не отображается Общее количество W3 – кэширование браузера браузера, не работающее с полученными изображениями cdn Как виджет должен ссылаться на то, что добавлено в пользовательские подменю или поля addmenu? API настроек с пользовательским ограничением меню типа сообщения Создание глобального массива для сравнения внутри запроса WP-nivo-slider Ошибка создания «Невозможно изменить информацию заголовка – заголовки, уже отправленные …»

Ошибка шаблона пользовательской таксономии: обманчивая фатальная ошибка: объект класса WP_Error не может быть преобразован в строку

Была попытка пресечь ошибку на этой странице :

Обрезаемая фатальная ошибка: объект класса WP_Error не может быть преобразован в строку

У меня есть настраиваемый тип сообщений и таксономия:

Таксономия: team_categories

  • Срок: «Комитеты» (среди прочих)

    • Детские условия в рамках комитетов: непрерывное образование, этика, законодательные действия и т. Д. (* Эта часть, похоже, работает)

      • Члены команды в каждом комитете (не работают)

Я хочу перечислить детские термины на странице шаблонов таксономии «Комитеты» и отобразить членов каждого комитета, например:

Комитет по непрерывному образованию

  • Джейн Доу
  • Джон Браун
  • и т.п.

Комитет по этике

  • Джек Джонс
  • Ann Acme
  • и т.п.

Вот текущий код:

 $taxonomyName = "team_categories"; //This gets top layer terms only. This is done by setting parent to 0. $parent_terms = get_terms( $taxonomyName, array( 'parent' => 0, 'orderby' => 'slug', 'hide_empty' => false ) ); echo '<ul>'; foreach ( $parent_terms as $pterm ) { //Get the Child terms $terms = get_terms( $taxonomyName, array( 'parent' => $pterm->term_id, 'orderby' => 'slug', 'hide_empty' => false ) ); foreach ( $terms as $term ) { echo '<li><a href="' . get_term_link( $term->name, $taxonomyName ) . '">' . $term->name . '</a></li>'; } } echo '</ul>'; 

Ошибка здесь:

  echo '<li><a href="' . get_term_link( $term->name, $taxonomyName ) . '">' . $term->name . '</a></li>'; 

Обновить:

Следующий код меня заткнет рядом с тем, что я ищу:

 $term_id = 26; // id of committees $taxonomy_name = 'team_categories'; $termchildren = get_term_children( $term_id, $taxonomy_name ); echo '<ul>'; foreach ( $termchildren as $child ) { $term = get_term_by( 'id', $child, $taxonomy_name ); echo '<li><a href="' . get_term_link( $child, $taxonomy_name ) . '">' . $term->name . '</a></li>'; } echo '</ul>'; 

В нем перечислены все подкатегории категории «Комитеты».

Как я могу отображать записи каждой категории под заголовком каждой категории? Имя настраиваемого типа сообщения – «команда».

Solutions Collecting From Web of "Ошибка шаблона пользовательской таксономии: обманчивая фатальная ошибка: объект класса WP_Error не может быть преобразован в строку"

Ну, ты echo объект. Никогда не эхо, если вы не уверены, что получите взамен. Взгляните на функцию: сама ошибка вполне понятна:

 function get_term_link( $term, $taxonomy = '') { global $wp_rewrite; if ( !is_object($term) ) { if ( is_int($term) ) { $term = get_term($term, $taxonomy); } else { $term = get_term_by('slug', $term, $taxonomy); } } if ( !is_object($term) ) $term = new WP_Error('invalid_term', __('Empty Term')); 

Кажется, вы не получаете объект взамен, поэтому возможно, что ваше имя $term->name неверно (или пустое).

Для проверки ошибки используйте is_wp_error() и для вывода сообщения:

 $link = get_term_link( etc ); if ( is_wp_error( $link ) ) echo $link->get_error_message(); 

Затем вы должны получить правильный вывод о том, что произошло, и должно быть в состоянии исправить это.

EDIT: Я предложил добавить endforeach; , но я только что вернулся к примеру кода в кодексе, и они не используют его, поэтому он не выглядит нужным.

Другое предложение – следовать примеру get_term_link() без использования вложенного foreach (), чтобы узнать, можете ли вы получить его для получения желаемых результатов «Top Layer Term».

Одним из преимуществ их кода является то, что, похоже, продолжается через ошибку:

 $terms = get_terms( 'team_categories' ); echo '<ul>'; foreach ( $terms as $term ) { // Sanitize the term, since we will be displaying it. $term = sanitize_term( $term, 'team_categories' ); $term_link = get_term_link( $term, 'team_categories' ); // If there was an error, continue to the next term. if ( is_wp_error( $term_link ) ) { continue; } // We successfully got a link. Print it out. echo '<li><a href="' . esc_url( $term_link ) . '">' . $term->name . '</a></li>'; } echo '</ul>'; 

Если это сработает, добавьте дополнительную сложность, используя пример стиля форматирования кода.

Что для меня работало, это исправление моего синтаксиса для ссылки на часть объекта в массиве.

Правильный код в моем случае был echo $web_desc_title[$i]->name;