Get_post不显示数据

时间:2017-08-22 02:56:23

标签: php wordpress

我有自定义的帖子类型推荐,我正在尝试显示标题,内容和精选图片。

这是我的代码:

    <?php
$args = array('posts_per_page' => -1, 'post_status' => 'publish', 'post_type' => 'testimonial');
$testimonialsposts = get_posts($args);
?>
<div class="row">
    <?php
    foreach ($testimonialsposts as $post)
    {

    setup_postdata($post);
    ?>

    <div class="testimonial-box projectitem">
        <img src="<?= get_post_meta($post->ID, '_wp_attached_file', true); ?>"/>
    </div>
    <div class="testimonial-contact">
        <div class="testimonial-text"><?= get_post($post->ID, 'content', true); ?></div>
        <div class="testimonial-name"><?= get_post($post->ID, 'post_title', true); ?></div>
        <?php wp_reset_postdata();
        } ?>
    </div>

但我一无所获。当我尝试在setup_postdata之后回显细节时,它只回显&#34;数组&#34;。

当我var_dump $ post时,它也会显示所有数据。

这是我var_dump $post

时得到的结果
  

对象(WP_Post)#614(24){[&#34; ID&#34;] =&gt; int(69)[&#34; post_author&#34;] =&gt;   字符串(1)&#34; 1&#34; [&#34; POST_DATE&#34;] =&GT; string(19)&#34; 2017-08-22 02:26:43&#34;   [&#34; post_date_gmt&#34;] =&GT; string(19)&#34; 2017-08-22 02:26:43&#34;   [&#34; POST_CONTENT&#34;] =&GT; string(575)&#34; Lorem Ipsum只是虚拟文本   印刷和排版行业。 Lorem Ipsum一直是   自16世纪以来,当一个未知的时候,业界的标准虚拟文本   打印机拿了一个类型的厨房,并乱扰它制作一个类型标本   书。它不仅存在了五个世纪,而且还在飞跃中存活下来   电子排版,基本保持不变。它是   随着Letraset床单的发布,在20世纪60年代普及   包含Lorem Ipsum段落,最近还有桌面版   像Aldus PageMaker这样的出版软件,包括Lorem的版本   存有&#34。 [&#34; POST_TITLE&#34;] =&GT; string(13)&#34; testimonial_1&#34; [&#34; post_excerpt&#34;] =&GT;   string(0)&#34;&#34; [&#34; post_status&#34;] =&GT;字符串(7)&#34;发布&#34;   [&#34; comment_status&#34;] =&GT;字符串(6)&#34;关闭&#34; [&#34; ping_status&#34;] =&GT;串(6)   &#34;关闭&#34; [&#34; post_password&#34;] =&GT; string(0)&#34;&#34; [&#34; POST_NAME&#34;] =&GT;串(11)   &#34;个人鉴定&#34; [&#34; to_ping&#34;] =&GT; string(0)&#34;&#34; [&#34;执行ping操作&#34;] =&GT; string(0)&#34;&#34;   [&#34; post_modified&#34;] =&GT; string(19)&#34; 2017-08-22 02:27:07&#34;   [&#34; post_modified_gmt&#34;] =&GT; string(19)&#34; 2017-08-22 02:27:07&#34;   [&#34; post_content_filtered&#34;] =&GT; string(0)&#34;&#34; [&#34; post_parent&#34;] =&GT; INT(0)   [&#34; GUID&#34;] =&GT;串(63)   &#34; http://192.168.0.202/clinic202/?post_type=testimonial&p=69&#34;   [&#34; menu_order&#34;] =&GT; int(0)[&#34; post_type&#34;] =&gt; string(11)&#34; testimonial&#34;   [&#34; post_mime_type&#34;] =&GT; string(0)&#34;&#34; [&#34; COMMENT_COUNT&#34;] =&GT; string(1)&#34; 0&#34;   [&#34;过滤器&#34;] =&GT; string(3)&#34; raw&#34; }

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我知道您正在使用get_posts,但这就是我要做的事情,使用wordpress循环查询帖子和循环,而不是使用foreach

试试这个

<?php
    query_posts(array(
        'post_type' => 'testimonial',
        'posts_per_page' => -1,
    ));
    if (have_posts()) : while (have_posts()) : the_post(); ?>
     <div class="testimonial-box projectitem">
         <?php echo wp_get_attachment_image( get_post_thumbnail_id( $post->ID ), '', 'false', array( "class" => "img-responsive" ) ); ?>
     </div>
    <div class="testimonial-contact">
        <div class="testimonial-text"><?php the_content();?></div>
        <div class="testimonial-name"><?php the_title(); ?></div>

    </div>
<?php endwhile; endif;
      wp_reset_postdata();
      wp_reset_query(); ?>

您还在foreach内关闭<div>,这会破坏您的html代码。