it-swarm-vi.tech

Lặp qua các phân loại tùy chỉnh và hiển thị bài viết

Mặc dù tôi đã có thể làm cho điều này hoạt động bình thường WP loại tôi không thể làm cho nó hoạt động cho các phân loại tùy chỉnh.

Tôi muốn lặp qua từng phân loại tùy chỉnh (danh mục trong trường hợp của tôi) và tạo ra một số bài đăng cho mỗi bài.

Một ví dụ về đầu ra sẽ là:

Category 1

post from category one
post from category one

read more category one


Category 2

post from category two
post from category two

read more category two

Tất nhiên nó sẽ lặp lại thông qua bất kỳ phân loại có sẵn cho loại bài tùy chỉnh.

7
curtismchale

Tôi nghĩ rằng tôi sẽ cung cấp một câu trả lời khác vì câu trả lời ở trên là một chút hack, tôi cũng đã thêm một lớp khác có được tất cả các phân loại cho một post_type.

$post_type = 'post';

// Get all the taxonomies for this post type
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type ) );

foreach( $taxonomies as $taxonomy ) : 

    // Gets every "category" (term) in this taxonomy to get the respective posts
    $terms = get_terms( $taxonomy );

    foreach( $terms as $term ) : 

        $posts = new WP_Query( "taxonomy=$taxonomy&term=$term->slug&posts_per_page=2" );

        if( $posts->have_posts() ): while( $posts->have_posts() ) : $posts->the_post();
            //Do you general query loop here  
        endwhile; endif;

    endforeach;

endforeach;

Bạn nên thêm từng bài đăng được tìm thấy vào một mảng $post__not_in, vì vậy bạn có thể chuyển nó vào WP_Query để ngăn các bài đăng trùng lặp đi qua.

9
Joe Hoyle

Bạn đang tìm kiếm điều này?

<?php query_posts(array('post_type' => 'post type name', 'Taxonomy slug' => $term->slug ) ); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

Cách tạo vòng lặp Phân loại tùy chỉnh

Hy vọng nó sẽ giúp

1
Maidul

Sao chép và dán chức năng này trong chức năng của bạn.php

if ( ! function_exists( 'display_all_products_from_all_categories' ) ) {

    function display_all_products_from_all_categories() {

        // Get all the categories for Custom Post Type Product
        $args = array( 
            'post_type' => 'product', 
            'orderby' => 'id', 
            'order' => 'ASC' 
        );

        $categories = get_categories( $args );

        foreach ($categories as $category) {
            ?>
            <div class="<?php echo $category->slug; ?>">
                <!-- Get the category title -->
                <h3 class="title"><?php echo $category->name; ?></h3>

                <!-- Get the category description -->
                <div class="description">
                    <p><?php echo category_description( get_category_by_slug($category->slug)->term_id ); ?></p>
                </div>

                <ul class="mhc-product-grid">

                    <?php
                        // Get all the products of each specific category
                        $product_args = array(
                            'post_type'     => 'product',
                            'orderby'      => 'id',
                            'order'         => 'ASC',
                            'post_status'   => 'publish',
                            'category_name' => $category->slug //passing the slug of the current category
                        );

                        $product_list = new WP_Query ( $product_args );

                    ?>

                    <?php while ( $product_list -> have_posts() ) : $product_list -> the_post(); ?>

                        <li class="product <?php the_field( 'product_flavor' ); ?>">
                            <a href="<?php the_permalink(); ?>" class="product-link">

                                <!-- if the post has an image, show it -->
                                <?php if( has_post_thumbnail() ) : ?>
                                    <?php the_post_thumbnail( 'full', array( 'class' => 'img', 'alt' => get_the_title() ) ); ?>
                                <?php endif; ?>

                                <!-- custom fields: product_flavor, product_description ... -->
                                <h3 class="title <?php the_field( 'product_flavor' ); ?>"><?php the_title(); ?></h3>
                                <p class="description"><?php the_field( 'product_description' ); ?></p>
                            </a>
                        </li>

                    <?php endwhile; wp_reset_query(); ?>
                </ul>

            </div>
            <?php
        }
    }
}

Sau đó gọi nó từ bất cứ nơi nào trong mẫu của bạn với:

display_all_products_from_all_categories();
0
drjorgepolanco