我正在用这段代码查询两个分类法:
$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()而不是我选择的函数。
答案 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();
?>