我为我的页面做了一个模板,我想在其中发布最新的“主题”,然后发布与这个主题相同类别的“文章”,所以我想我必须通过一个变量来传递这个类别。
我希望代码不会太长
谢谢你的建议!
<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类的对象无法转换为字符串
发布于 2019-07-04 23:09:43
函数
get_the_category();返回一个对象数组,因为一个帖子可以关联多个类别,我猜这可能是导致问题的原因,因为在您的$args2中,它期望$mycat是一个ID。
您可以通过将以下内容添加到模板中来查看返回的内容:
echo '<pre>';
print_r($mycat);
echo '</pre>';如果你知道它总是只有一个术语与帖子相关联,你可以使用以下命令访问term_id:
$mycat[0]->term_id但是循环遍历可能会更好,循环遍历$mycat可能更好
https://stackoverflow.com/questions/56888734
复制相似问题