我有这种情况:
分类
23Feb2015,24Feb2015,25Feb2015,26Feb2015 ...... 30Jan2099
每天我都会在不同类别中添加5-6个帖子(今天的帖子属于2015年2月26日,昨天的帖子属于2015年2月25日类别,等等。)
在主页上,我需要制作3个不同的块,我必须查询最后添加的类别中的最后添加的帖子。
示例:
26Feb2015 - Post 1 - Post 2 - Post 3 - Post 4 - Post 5查看全部来自2015年2月26日
25Feb2015 - Post 1 - Post 2 - Post 3 - Post 4 - Post 5查看全部来自25Feb2015
2015年2月24日 - 第1期 - 第2期 - 第3期 - 第4期 - 第5期查看全部来自2015年2月24日
我无法弄清楚如何使用自定义字段,类别分类法或......我被卡住了。
答案 0 :(得分:0)
我理解你的问题。这是代码列表,用于显示所有类别5帖子显示的块以及显示“查看所有帖子链接”。
注意:我了解您使用的是WordPress默认类别。
$showcatPost_slug = array('testcat1','uncategorized','test2');
if(count($showcatPost_slug)>0) {
foreach($showcatPost_slug as $slug) {
$args = array(
'post_type' => 'post',
'posts_per_page'=>5,
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => $slug,
),
),
);
$query = new WP_Query( $args );
if($query->have_posts()) :
echo '<ul>';
while($query->have_posts()): $query->the_post();
echo '<li>'.get_the_title().'</li>';
endwhile;
//for category link
$category = get_category_by_slug($slug);
$cateid = $category->term_id;
// Get the URL of this category
$category_link = get_category_link( $cateid );
echo "<li><a href='$category_link' title='view all links'>View all from $slug</a></li>";
echo '</ul>';
endif;
wp_reset_query();
}
}
您需要将slug数组值替换为自己的类别slug。 下面是将此代码发送到自己的网站时更改的数组。
$showcatPost_slug = array('testcat1','uncategorized','test2');
答案 1 :(得分:0)
据我所知,没有Wordpress功能可用于查询最后添加的类别,我也不认为存在与类别一起存储的日期戳信息。
所以我想到的第一件事就是解决这个问题。由于您似乎使用了非常具体的日期格式,因此很容易使用php生成最后三个类别的名称。
<?php
$today = date("dMY");
$yesterday= date('dMY',strtotime("-1 days"));
$bfYesterday= date('dMY',strtotime("-2 days"));
?>
然后在你的循环中,您可以使用以下代码获取今天,昨天和前天的最后五个帖子。 (我将留给你工作,另外两天,并把它包括在你的循环中)
$getPosts = array('posts_per_page' => 5, 'category_name' => $today,)
如果你错过了一天,我发现了一个潜在的问题,所以你可能想再拉几天,然后再使用一些php if
语句来确定这些类别是否实际包含任何帖子,如果没有然后获取前一天的帖子。