wordpress查询类别和从字段发布

时间:2015-02-27 07:17:37

标签: wordpress categories

我有这种情况:

分类

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日

我无法弄清楚如何使用自定义字段,类别分类法或......我被卡住了。

2 个答案:

答案 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语句来确定这些类别是否实际包含任何帖子,如果没有然后获取前一天的帖子。