月度归档: 2020 年 11 月

  • wordpress 查询多少天内发布的文章

    该功能通过添加一个posts_where过滤器来完成:

    <?php
    function filter_where($where = '') {
        $where .= " AND post_date > '" . date('Y-m-d', strtotime('-60 days')) . "'";
        return $where;
    }
    add_filter('posts_where', 'filter_where');
    query_posts($query_string);
    ?>
    

    默认是60天内的文章,可更根据需要调整。

    将代码添加到主循环的上面。

    项目中的具体代码如下:

    <?php
    // 查询多少天内的文章
    if (isset($_GET['arttime'])) {
        function filter_where($where = '') {
            $arttime = $_GET['arttime'];
            $where .= " AND post_date > '" . date('Y-m-d', strtotime('-' . $arttime . 'days')) . "'";
            return $where;
        }
        add_filter('posts_where', 'filter_where');
    }
    
    $paged = 1;
    if (get_query_var('page')) {
        $paged = get_query_var('page');
    }
    $term = get_queried_object();
    query_posts(array(
        'category_name'     => $term->slug, // 分类slug
        'posts_per_page'    => 10, // 每页几条
        'paged'             => $paged,  // 当前是第几页
    ));
    while (have_posts()) :
        the_post();
    ?>
        <a href="<?php the_permalink() ?>" class="news-item">
            <div class="left-newlist-left">
                <span> <?php single_cat_title() ?> <i></i><?php echo get_the_date('Y-m-d'); ?></span>
                <h1><?php the_title() ?></h1>
    
            </div>
            <div class="right-newlist-img">
                <img src="<?php echo catch_that_image(); ?>" alt="">
            </div>
        </a>
    <?php endwhile; ?>