Как исправить «Объект класса WP_Term не может быть преобразован в строку» - PullRequest
1 голос
/ 04 июля 2019

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

Надеюсь, код не слишком длинный

Спасибо за любой совет!

<div class="empty-topic">

<?php
$args1 = array(
  'post_type'   => 'topic',
  'post_status' => 'publish',
  'posts_per_page' => 1
 );

$theme = new WP_Query( $args1 );
  if( $theme->have_posts() ) :
?> <div class="topic-facts">
<?php
        $theme->the_post();

$mytemp = get_the_ID();
$mycat = get_the_category();
?>

            <h3 class="topic-title">"Thema: "<?php the_title(); ?></h3>             
            <p><?php echo get_post_field( 'facts' ); ?></p>
                         </div>
           <?php 
           wp_reset_postdata();
        ?>
<?php
else :
  esc_html_e( 'No articles have been found!', 'text-domain' );
endif;
?>

<?php
$args2 = array(
  'post_type'   => 'article',
    'cat' => $mycat,
  'post_status' => 'publish',
  'posts_per_page' => 3
 );

Кажется, я сделал какую-то ошибку типа данных, потому что, когда я пытаюсь включитьВ этом шаблоне я получаю сообщение об ошибке: объект класса WP_Term не может быть преобразован в строку

1 Ответ

0 голосов
/ 04 июля 2019

Функция

get_the_category();

возвращает массив объектов, поскольку с сообщением может быть связано несколько категорий, я думаю, это может быть причиной проблемы, так как в вашем $ args2 она ожидает, что $ mycatбыть ID.

Вы можете увидеть, что возвращается, добавив это в ваш шаблон:

<code>echo '<pre>';
print_r($mycat);
echo '
';

Если бы вы знали, что всегда будет только один термин, связанный с сообщением, вы могли бы получить доступ к term_id, используя:

$mycat[0]->term_id

Но, вероятно, было бы лучше пройтись по циклуЛучше перебрать $ mycat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...