Wordpress get_posts返回正确的结果,但不会加载后续函数

时间:2014-01-05 03:29:24

标签: php wordpress

我正在用这段代码查询两个分类法:

$args = array(
    'posts_per_page'  => 1,
    'offset'          => 0,
    'orderby'         => 'post_date',
    'order'           => 'DESC',
    'include'         => '',
    'exclude'         => '',
    'meta_key'        => '',
    'meta_value'      => '',
    'post_type'       => 'post',
    'post_mime_type'  => '',
    'post_parent'     => '',
    'post_status'     => 'publish',
    'suppress_filters' => true,
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
        'terms' => '16',
        'field' => 'term_id',
        ),
        array(
        'taxonomy' => $this_taxonomy,
        'terms' => $this_page,
        'field' => 'slug',
        )
    )
);
$myposts2 = get_posts( $args );

它返回一个好结果(生成的post对象具有正确的类别和分类/ slug分配)。

但是当我尝试使用这样的后续函数时:

<?php foreach ( $myposts2 as $post2 ) : ?>
    <li class="product-details">
    <a href="<?php the_permalink($post2->ID); ?>"><?php get_the_post_thumbnail( $post2->ID, 'medium' ); ?><h3><?php $post2->post_title; ?></h3></a>
</li>
<?php 
    endforeach; 
wp_reset_postdata();
?>

我最终得到了永久链接的错误结果,没有标题或缩略图的结果。

任何想法我做错了什么?

谢谢你,BA_Webimax!代码还有一些其他问题,但您发送的参考链接帮助我朝着正确的方向前进。我没想到WP要求我调用对象$ post(而不是$ post2)。此外,我使用错误的函数来检索位。 get_permalink()很好,但我应该使用the_post_thumbnail()和the_title()而不是我选择的函数。

1 个答案:

答案 0 :(得分:1)

你需要在那里进行setup_postdata()通话。有关详细信息,请参阅此处... https://codex.wordpress.org/Function_Reference/setup_postdata

<?php foreach ( $myposts2 as $post2 ) :
    setup_postdata($post2); ?>
    <li class="product-details">
    <a href="<?php the_permalink($post2->ID); ?>"><?php get_the_post_thumbnail( $post2->ID, 'medium' ); ?><h3><?php $post2->post_title; ?></h3></a>
</li>
<?php 
    endforeach; 
wp_reset_postdata();
?>