Intereting Posts
Как получить реальный размер эскиза? Единственное пользовательское меню типа post ancestor / parent – это страница с архивами сообщений WordPress Admin Thickbox: удалить поля / заполнение Как включить admin-ajax при загрузке внешнего javascript Добавление пользовательских полей в формы комментариев WordPress? Многостраничная, различная приборная панель Лучший способ объединить Dev и Live Site, чтобы стать промежуточным сайтом? База данных SQL, повторяющиеся таблицы? Как импортировать файлы в отдельные записи настраиваемого типа Где определено расположение темы для главного меню в шаблоне WordPress? wpautop (), когда атрибуты короткого кода находятся на новых линиях, разбивают массив args Как правильно загрузить этот скрипт jquery через файл functions.php? Как получить сообщения на другом языке из WPML Plugin Блокировать несколько категорий из блога Выберите конкретную запись для отображения в окне новостей.

Ошибка шаблона пользовательской таксономии: обманчивая фатальная ошибка: объект класса 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;