我的WP查询有点奇怪的问题。我有一个自定义的帖子类型(组合),有一个名为year的自定义分类。我每年都有类别,所以我想要的是显示每年的所有帖子。问题是,只有2012年有效。如果我订购ASC / DESC类别无关紧要 - 只有2012年有效。
<section id="content">
<?php
$categories = get_categories('taxonomy=year&order=DESC');
foreach($categories as $category) : ?>
<article class="year">
<h2><?php echo $category->name ?></h2>
<div class="items">
<?php
$posts = get_posts('taxonomy=year&post_type=portfolio&year=' . $category->slug);
foreach($posts as $post) : ?>
<div class="item">
<?php
$large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" rel="lightbox[' . $category->slug . ']" >';
the_post_thumbnail('thumbnail');
echo '</a>';
?>
</div>
<?php endforeach; ?>
</div>
</article>
<?php
endforeach;
wp_reset_query();
?>
</section>
我做错了什么?对我来说,这似乎是正确的..我已经尝试了一系列不同的尝试,从真实的查询到荒谬的排序,但我只是无法做到正确..
提前谢谢!
答案 0 :(得分:0)
我现在已经解决了这个问题,但仍然没有得到它100%,但它至少可以工作..必须有一些更聪明的方法来做到这一点,因为我现在循环通过所有图像的每个术语。好吧,这是代码(按照自定义分类法中的术语分组)。
<section id="content">
<?php
$categories = get_categories('taxonomy=year&order=DESC');
foreach($categories as $category) { ?>
<article class="year">
<h2><?php echo $category->name ?></h2>
<div class="items">
<?php
$args = array(
'post_type' => 'portfolio'
);
query_posts($args);
$count = 0;
while(have_posts()) : the_post();
$terms = get_the_terms( $post->ID, 'year' );
foreach ( $terms as $term ) {
$imgslug = $term->name;
}
if($imgslug == $category->name) {
if($count == 6) {
echo '<div class="expanded-items">';
}
?>
<div class="item">
<?php
$large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" rel="lightbox[' . $category->slug . ']" >';
the_post_thumbnail('thumbnail');
echo '</a>';
?>
</div>
<?php
}
$count++;
endwhile;
if($count >= 6) {
echo '</div>';
}
?>
</div>
<div class="expand">Visa fler</div>
</article>
<?php } ?>
</section>
这是一个可扩展的列表,因此它从一开始就显示6,然后展开以显示其余的项目(jQuery)。