Поддержка Проблемы и решения Непонятная ошибка с таксономиями

  • У меня есть два собственных типа записей и, соответственно, таксономии к ним. После обновления на страницах записей произвольного типа (шаблон content-single.php) перестали выводиться рубрики и метки плюс появилось предупреждение:

    «Warning: Illegal offset type in isset or empty in /home/…/wp-includes/taxonomy.php on line 258»

    Что это такое и что с ним делать?

    • Тема изменена 5 лет, 5 месяцев назад пользователем Natali_Z.
Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Каким кодом в шаблоне content-single.php выводятся рубрики и метки?

    <?php 
        $categories_list        = get_the_category_list( ' ', 'multiple' );
        $custom_categories_list = get_the_term_list( $post->ID, array( 'wp_categories', 'library_categories' ), '', ', &nbsp;' );
    	$tags_list              = get_the_tag_list( '', ', &nbsp;' );
        $tags_list_wp           = get_the_term_list( $post->ID, 'wp_tags', '', ', &nbsp;' );
        $tags_list_lib          = get_the_term_list( $post->ID, 'library_tags', '', ', &nbsp;' );
        $series_list            = get_the_term_list( $post->ID, 'series', '', ', &nbsp;' ); 
    
        if ( $categories_list) { echo '<span><strong>' . __('In category: ', 'natali') . '</strong>' . $categories_list . '</span><br/>'; }
        if ( $custom_categories_list ) { echo '<span><strong>' . __('In category: ', 'natali') . '</strong>' . $custom_categories_list . '</span><br/>'; }
    	if ( $tags_list ) { echo '<strong>' . __('Tagged: ', 'natali') . '</strong>' . $tags_list . '<br/>'; }
    	if ( $tags_list_wp ) { echo '<strong>' . __('Tagged: ', 'natali') . '</strong>' . $tags_list_wp . '<br/>'; }
    	if ( $tags_list_lib ) { echo '<strong>' . __('Tagged: ', 'natali') . '</strong>' . $tags_list_lib . '<br/>'; }
        if ( $series_list ) { echo '<strong>' . __('Series: ', 'natali') . '</strong>' . $series_list; }
    ?>

    На текущий момент в записях произвольного типа вместо этого отображается:

    Warning: Illegal offset type in isset or empty in /home/.../wp-includes/taxonomy.php on line 258
    
    Catchable fatal error: Object of class WP_Error could not be converted to string in /home/.../wp-content/themes/natali/content-single.php on line 71

    258-я строка файла taxonomy.php:
    return isset( $wp_taxonomies[$taxonomy] );

    71-я строка файла content-single.php:
    if ( $custom_categories_list ) { echo '<span><strong>' . __('In category: ', 'natali') . '</strong>' . $custom_categories_list . '</span><br/>'; }
    из вышеприведённого кода.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Ошибка в этой строке:

    
    $custom_categories_list = get_the_term_list( $post->ID, array( 'wp_categories', 'library_categories' ), '', ', &nbsp;' );
    

    Второй аргумент get_the_term_list() должен быть строкой, а не массивом.

    А почему раньше работало?

    Разбила переменную на две отдельных и, соответственно добавила вторую строку на вывод. Всё заработало, все предупреждения исчезли. Большое Вам спасибо. Можно задать второй вопрос, сходный по теме, или лучше сделать это отдельно?

    или лучше сделать это отдельно?

    Лучше отдельно — правила форума, п2.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Непонятная ошибка с таксономиями» закрыта для новых ответов.