首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复“无法将类WP_Term的对象转换为字符串”

问如何修复“无法将类WP_Term的对象转换为字符串”
EN

Stack Overflow用户
提问于 2019-07-04 21:11:51
回答 1查看 507关注 0票数 1

我为我的页面做了一个模板,我想在其中发布最新的“主题”,然后发布与这个主题相同类别的“文章”,所以我想我必须通过一个变量来传递这个类别。

我希望代码不会太长

谢谢你的建议!

代码语言:javascript
复制
<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类的对象无法转换为字符串

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-04 23:09:43

函数

代码语言:javascript
复制
get_the_category();

返回一个对象数组,因为一个帖子可以关联多个类别,我猜这可能是导致问题的原因,因为在您的$args2中,它期望$mycat是一个ID。

您可以通过将以下内容添加到模板中来查看返回的内容:

代码语言:javascript
复制
echo '<pre>';
print_r($mycat);
echo '</pre>';

如果你知道它总是只有一个术语与帖子相关联,你可以使用以下命令访问term_id:

代码语言:javascript
复制
$mycat[0]->term_id

但是循环遍历可能会更好,循环遍历$mycat可能更好

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56888734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档