"The problem I have it that on the first 8 pages only 1 article is displayed."
这是由于这一行代码:
if ( $wp_query->get( \'paged\') < 8 ) {
$wp_query->set( \'posts_per_page\', 1);
}
有关更多信息,请参见此处:
codex.wordpress.org/Class_Reference/WP_Query#Pagination_Parameters编辑:
尝试添加@kaiser提到的括号。。。这是您在粘贴箱中发布的原始代码,其中添加了括号/缩进,我认为它们应该放在哪里。。。
function wpse31701_filter_query() {
global $wp_query;
// Check year and month
$wp_query->set(\'orderby\', \'date\'); $wp_query->set(\'order\', \'ASC\');
if ( $wp_query->get( \'year\' ) == 2005 and $wp_query->get( \'monthnum\' ) == 4 ) {
// Check page number to apply offset
if ( $wp_query->get( \'paged\') == 2 ) {
$wp_query->set( \'offset\', 1 );
}
else {
if ( $wp_query->get( \'paged\') == 3 ) {
$wp_query->set( \'offset\', 4 );
}
else {
$wp_query->set( \'posts_per_page\', 1);
}
}
}
}
add_action( \'pre_get_posts\', \'wpse31701_filter_query\' );
您的第一个“if”语句在其应该评估的内容周围没有括号。如果编写没有括号的条件语句,那么它只计算它后面的第一行。如果评估中有多行,则需要使用括号或冒号。
现在,我不确定这是否能解决你的问题。。。但在调试任何“问题”之前,首先正确格式化代码至少是一个非常好的主意,因为格式化可能是其中之一,如果不是“问题”的话。