Loop with Dynamic Categories

时间:2017-04-19 作者:Nathan Alvarez

我需要创建一个WordPress循环来显示与某个类别相关的所有帖子,但我需要该类别与我正在查看的任何页面相匹配。

例如:假设我有一个类别1,所有我想显示在第1页上的帖子。当我转到第2页时,我希望该类别更改为第2类,以便所有相关的帖子都显示在第2页上。

当前,我的循环如下所示:

<?php query_posts(\'$cat_ID\'); ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <?php the_content(); ?>

    <?php endwhile; else: ?>

        <p>Sorry, this page does not exist</p>

    <?php endif; ?>
</div>
显然,这将显示所有帖子,无论类别如何。我需要确保根据页面更改类别。

有什么建议吗?

1 个回复
SO网友:Dave Romsey

下面的代码为页面启用类别。提供了一个示例页面模板,该模板循环浏览分配给页面的类别,并显示每个类别的帖子。

如果要限制用户仅选择一个类别,可以使用以下解决方案:Taxonomy Single Term.

关联category 分类学page 岗位类型:

function wpse_page_category() {
    register_taxonomy_for_object_type( \'category\', \'page\' );    
}
add_action( \'init\', \'wpse_page_category\', 999  );
简单页面模板示例(template page categories.php):

<?php
/**
 * Template Name: Page Categories
 *
 */

get_header(); ?>


<?php 
    // Standard loop for page content
    if ( have_posts() ) {
        while ( have_posts() ) {
            the_post();
            the_title( \'<h1>\', \'</h1>\' );
            the_content();
        }
    }


    // Get the category assigned to this page and list the posts in this category.
    // This code works when multiple categories have been assigned to the page.
    $page_categories = get_the_terms( get_the_ID(), \'category\' );
    if ( $page_categories && ! is_wp_error( $page_categories ) ) {

        foreach ( $page_categories as $page_category ) {

            $posts_query = new WP_Query( [
                \'post_type\' => \'post\',
                \'cat\' => $page_category->term_id,
            ] );


            if ( $posts_query->have_posts() ) {
                echo \'<h2> Posts from the <em>\' . esc_html( $page_category->name ) . \'</em> category:</h2>\';
                while ( $posts_query->have_posts() ) {
                    $posts_query->the_post();
                    the_title( \'<h3>\', \'</h3>\' );
                    //the_content();
                }
                echo \'<hr>\';
            }
        }
    }

?>

相关推荐

如何将自定义选项添加到wp_Dropdown_Categories?

我需要将自定义选项添加到wp_dropdown_categories. 现在,整个万维网世界还没有找到解决方案。。。因此,我在这里要求一个解决方案……因为我真的无法想象WordPress的开发人员没有考虑到这将永远不需要,对吗?