为什么此脚本在我的网站上不起作用

时间:2011-10-21 作者:Roelof Wobbn

我找到了一个脚本,这样我就可以在几个月内更改页面上的帖子数量。

因此,我以这种方式实现此脚本:http://pastebin.com/Nbqy0KBU

但所有文章仍显示在此处,如您所见:http://test.tamarawobben.nl/2005/04

有人知道为什么以及如何解决这个问题吗?

鲁洛夫

编辑1:

我想在伪代码中实现这一点。

当年份为2005年,月份为4月(04),我们在该月的第一页时,必须显示1篇文章。如果没有,则必须显示文章的标准编号。

3 个回复
最合适的回答,由SO网友:soulseekah 整理而成

考虑实现您似乎需要的目标:

function wpse31701_filter_query() {
    global $wp_query;
    // Check year and month
    if ( $wp_query->get( \'year\' ) == 2005 and $wp_query->get( \'monthnum\' ) == 5 )
        // Check page number to apply offset
        if ( $wp_query->get( \'paged\') > 1 ) $wp_query->set( \'offset\', 1 );
        else $wp_query->set( \'posts_per_page\', 1);
}
add_action( \'pre_get_posts\', \'wpse31701_filter_query\' );
在这里,我们会尽快更改查询$the_query 准备好获取帖子,修改posts_per_page 如果paged 为1,如果paged 大于1。

重要的是应用offsetposts_per_page; 剩下的纯粹是有条件的,所以要适用于口味。

SO网友:Taylor Dewey

is_category(); 正在检查您是否在类别存档中。所以is_category(\'1perpage\'); 只有在启用时才会返回truehttp://test.tamarawobben.nl/category/1perpage/

SO网友:Taylor Dewey

看起来没有任何模板标记来实现您想要的内容,因此您无法比较查询字符串(请尝试get_query_var(query_vars)) 到200504

$WP_Query 对象:... [query_vars] => Array ( [m] => 201110 ...

如果是比赛,你有很多选择。。。我可以试试if/then括号。。。psuedo代码:

 if ($queryvar == \'200504\' && $paged == 1):
    $singlepost = get_post(...);
    // write display code for your singleton post.
 else:
    query_posts($query_string.\'&offset=1\');
    //run through the normal loop code here
 endif;
这仍然可能会影响分页,这是这里的关键。。。我相信其他人可以想出更好的答案,但也许这会让你开始。

结束

相关推荐

Adding goodies to themes

如何在主题更新时向Arjuna-X等主题添加内容而不丢失?儿童主题是一种很好的方式,还是有其他选择?如果新版本的主题对我添加的功能具有本机支持,该怎么办?