我如何将我的博客主页设置为仅自动显示这周的帖子?

时间:2011-02-18 作者:noel saw

在我的WPWeekly.net 网站,我目前必须设置数量的职位显示手动设置->阅读。

是否有一个片段可以让我的主页博客自动显示当前一周的帖子?

谢谢

3 个回复
SO网友:Rarst

根据文档,您可以使用Time Parameters with query_posts(), 但请注意,这可能会严重破坏您的分页和到旧条目的链接。

SO网友:t31os

我想我并没有真正关注Rarst关于分页和上一页/下一页链接的担忧,我认为您可以安全地拦截主页查询并更改查询变量以查看特定时间范围内的帖子,我倾向于使用过滤器/操作方法(无需设置分页值)。

add_action( \'pre_get_posts\', \'home_week_query\' );
function home_week_query( $wpq ) {
    if( $wpq->is_admin || !$wpq->is_home )
        return;
    if( isset( $wpq->query_vars[\'post_type\'] ) && ( \'nav_menu_item\' == $wpq->query_vars[\'post_type\'] ) )
        return;

    if( !did_action(\'wp\') )
        return;

    $today = getdate();
    $wpq->set( \'year\', $today["year"] );
    $wpq->set( \'monthnum\', $today["mon"] );
    $wpq->set( \'day\', $today["mday"] );
}
寻呼工作和帖子都在特定范围内,但如果您对代码有任何问题,请告诉我。

SO网友:noel saw

我聘请了一位海外开发商,将我想要的前一周主页上的帖子应用到一个主题网站上。回想起来,我应该让他申请两周(本周+本周):

如果你想查看,可以在这里下载主题。。。http://dl.dropbox.com/u/4016505/thematic-wpweekly.net.zip

但以下是他所做的(用他的话说)-希望这有点道理。。。

将给定代码复制到当前主题文件夹中的“function.php”文件中。这将为您最初的每周邮报查询设置条件。

function filter_where( $where = \'\' ) {
        $end_Date = date(\'Y-m-d\',mktime(0,0,0,date(\'m\'),date(\'d\')-date(\'w\')-1 ,date(\'Y\'))) ;
        $start_Date = date(\'Y-m-d\',mktime(0,0,0,date(\'m\'),date(\'d\')-date(\'w\')-7 ,date(\'Y\'))) ;

$where .= " AND post_date >= \'".$start_Date."\' AND post_date <= \'".$end_Date."\' ";
return $where;
}

现在它将显示上周发布,但您可以修改$end\\u Date和$start\\u Date变量,并将其设置为当前日期或任何给定的时间段范围。

if(isset($_GET) and count($_GET)<=0){
    add_filter( \'posts_where\', \'filter_where\' );
    }
这两个代码都应使用另一个add\\u filter函数编写,并在给定代码之上:

 $locale = get_locale();
如果要在给定的时间段内应用所有post,则在循环之前使用用户给定的代码

“have_posts() ) : the_post(); “ 
在当前主题文件夹的库文件夹中的扩展文件中。

global $query_string;
query_posts( $query_string . "&posts_per_page=-1&order=desc" );

结束

相关推荐

5 blogs on one WordPress site

在一个网站上拥有多个博客的最佳方式是什么?我不是说多站点。我想要的是一个有5个博客的网站。所有这些都可以从一个菜单访问,也可以从一个后端编辑,我可以使用类别,尽管我正在寻找其他内容。多站点需要进行大量调整。