第一页之后的Genesis多类别自定义循环404s

时间:2014-03-19 作者:rugbert

好的,我有一个页面,显示“新闻”类别中的帖子提要(url为:mydomain.com/category/news),但客户端希望它也显示“新闻稿”类别中的帖子。

所以在类别中。php页面中,我使用了以下代码,认为它将遍历“新闻”或“新闻稿”类别中的所有帖子:

ob_start();
    single_cat_title();
    $this_cat = ob_get_contents();
ob_end_clean();



if( $this_cat == \'News\' || $this_cat == \'Press Releases\' ) {

    remove_action( \'genesis_loop\', \'genesis_do_loop\' );
    add_action( \'genesis_loop\', \'vacation_do_custom_loop\' );

}

function vacation_do_custom_loop() {

    global $wp_query;
    global $paged; // current paginated page
    global $query_args; // grab the current wp_query() args


    $args = array(
        \'category__in\' => \'5, 1\', // i also tried \'category_name\' => \'news, press-releases\'
        \'posts_per_page\' => 9,
        \'paged\'            => $paged // respect pagination
    );

    genesis_custom_loop( wp_parse_args($query_args, $args) );

}
点击第2页(第7页)后,我转到了404。

我认为问题是,“新闻”类中只有1篇帖子,而“新闻稿”中大约有40篇。所以分页显示了所有40多篇文章的页面,但因为只有一篇“新闻”文章,第二页实际上并不存在?既然url是/类别/新闻,Wordpress会根据“新闻”帖子的数量创建分页吗?

我怎样才能让分页在这里工作?

1 个回复
SO网友:montrealist

如果类别名称不变,且网站仅使用一种语言,则可以创建两个类别模板:category-news.phpcategory-press-releases.php, 然后,所有内容都可以正常工作,而无需获取类别并包括category__in 查询中的参数。

而且,你总是想add_action 在函数内调用。php `,而不是在模板本身内部。

结束

相关推荐

wp_query inside the_loop

我的循环有这个问题。我正在制作一个将从主查询调用的快捷码。它将显示在\\u循环的首页上。因为某种我无法理解的原因。第二个查询只显示一篇文章,而它应该显示3篇。因此,短代码将出现在页面内容中。在“设置”部分,我将首页设置为“主页”,将博客页面设置为“博客”,但主页不是模板。它是由索引生成的。使用WordPress 2014主题的php页面。因此,在“主页”内容区域,我有一个快捷码,它生成第二个循环,从一个名为“特色”的类别中获取3篇文章。 $featured = new WP_Query( array( \

第一页之后的Genesis多类别自定义循环404s - 小码农CODE - 行之有效找到问题解决它

第一页之后的Genesis多类别自定义循环404s

时间:2014-03-19 作者:rugbert

好的,我有一个页面,显示“新闻”类别中的帖子提要(url为:mydomain.com/category/news),但客户端希望它也显示“新闻稿”类别中的帖子。

所以在类别中。php页面中,我使用了以下代码,认为它将遍历“新闻”或“新闻稿”类别中的所有帖子:

ob_start();
    single_cat_title();
    $this_cat = ob_get_contents();
ob_end_clean();



if( $this_cat == \'News\' || $this_cat == \'Press Releases\' ) {

    remove_action( \'genesis_loop\', \'genesis_do_loop\' );
    add_action( \'genesis_loop\', \'vacation_do_custom_loop\' );

}

function vacation_do_custom_loop() {

    global $wp_query;
    global $paged; // current paginated page
    global $query_args; // grab the current wp_query() args


    $args = array(
        \'category__in\' => \'5, 1\', // i also tried \'category_name\' => \'news, press-releases\'
        \'posts_per_page\' => 9,
        \'paged\'            => $paged // respect pagination
    );

    genesis_custom_loop( wp_parse_args($query_args, $args) );

}
点击第2页(第7页)后,我转到了404。

我认为问题是,“新闻”类中只有1篇帖子,而“新闻稿”中大约有40篇。所以分页显示了所有40多篇文章的页面,但因为只有一篇“新闻”文章,第二页实际上并不存在?既然url是/类别/新闻,Wordpress会根据“新闻”帖子的数量创建分页吗?

我怎样才能让分页在这里工作?

1 个回复
SO网友:montrealist

如果类别名称不变,且网站仅使用一种语言,则可以创建两个类别模板:category-news.phpcategory-press-releases.php, 然后,所有内容都可以正常工作,而无需获取类别并包括category__in 查询中的参数。

而且,你总是想add_action 在函数内调用。php `,而不是在模板本身内部。

相关推荐

Custom pagination structure

当前我的分页工作方式如下http://example.com/city/usa/ #for page 1 http://example.com/city/usa/page/2 http://example.com/city/usa/page/3 ...and so on 我想将其更改为:http://example.com/city/usa/ #for page 1 http:/