没有“循环”的自定义存档页面

时间:2013-08-05 作者:Daniel A. White

有没有一种方法可以控制使用自己循环的归档页面的呈现?我想按自定义分类法对帖子进行分组,然后按日期进行排序。

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

您应该过滤默认值$query 通过连接到的回调pre_get_posts:

function wpse108983_filter_pre_get_posts( $query ) {
    // Make sure we\'re targeting
    // the main loop query, and
    // only in the archive context
    if ( $query->is_main_query() && is_archive() ) {
        // Add your query modifications here
        // For example, to sort by date:
        $query->set( \'orderby\', \'date\' );
    }
}
add_action( \'pre_get_posts\', \'wpse108983_filter_pre_get_posts\' );
如果您需要输出多个循环以便按分类法分组,那么您将不使用上述方法,而是希望通过以下方式输出自定义循环new WP_Query().

假设您已经知道如何查询分类的术语foobar, 将它们排列成一个阵列,$term_array:

// Loop through each term
foreach ( $term_array as $single_term ) {
    // Generate the term query
    $term_query = new WP_Query(
        \'foobar\' => $single_term,
        \'orderby\' => \'date\'
    );
    // Output the term query loop
    if ( $term_query->have_posts() ) : 
        while ( $term_query->have_posts() ) : 
            $term_query->the_post();
            // Custom loop markup goes here
            // Use normal loop template tags, such as
            // the_content(), the_permalink(), etc
        endwhile; 
    endif;
    // Important; don\'t forget this!
    wp_reset_postdata();
}

结束

相关推荐

显示Archives.php中的所有自定义帖子类型

我该怎么做?archive.php 只有以下内容:wp_get_archives(\'type=monthly\'); 以及wp_get_archives() 没有显示所有帖子类型的参数。我也认为archive-[post_type].php 不是我要找的,因为我希望所有帖子类型都显示在一个归档页面中。谢谢W

没有“循环”的自定义存档页面 - 小码农CODE - 行之有效找到问题解决它

没有“循环”的自定义存档页面

时间:2013-08-05 作者:Daniel A. White

有没有一种方法可以控制使用自己循环的归档页面的呈现?我想按自定义分类法对帖子进行分组,然后按日期进行排序。

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

您应该过滤默认值$query 通过连接到的回调pre_get_posts:

function wpse108983_filter_pre_get_posts( $query ) {
    // Make sure we\'re targeting
    // the main loop query, and
    // only in the archive context
    if ( $query->is_main_query() && is_archive() ) {
        // Add your query modifications here
        // For example, to sort by date:
        $query->set( \'orderby\', \'date\' );
    }
}
add_action( \'pre_get_posts\', \'wpse108983_filter_pre_get_posts\' );
如果您需要输出多个循环以便按分类法分组,那么您将不使用上述方法,而是希望通过以下方式输出自定义循环new WP_Query().

假设您已经知道如何查询分类的术语foobar, 将它们排列成一个阵列,$term_array:

// Loop through each term
foreach ( $term_array as $single_term ) {
    // Generate the term query
    $term_query = new WP_Query(
        \'foobar\' => $single_term,
        \'orderby\' => \'date\'
    );
    // Output the term query loop
    if ( $term_query->have_posts() ) : 
        while ( $term_query->have_posts() ) : 
            $term_query->the_post();
            // Custom loop markup goes here
            // Use normal loop template tags, such as
            // the_content(), the_permalink(), etc
        endwhile; 
    endif;
    // Important; don\'t forget this!
    wp_reset_postdata();
}

相关推荐

Display an archives name

我想显示当前存档文件的名称,因此对于下面的url,我可以这样做<h1><?php echo \"answer\" ?></h1> 输出如下内容<h1>News</h1> 或者更好<h1>News: supplierName</h1> http://www.site.com/suppliers/news/?supplierstax=supplierName