it-swarm.asia

Özel taksonomiler ve ekran mesajlarında dolaşın

Bunu normal bir şekilde çalıştırabildiğim halde WP kategorisi Özel taksonomiler için çalışmasını sağlayamadım.

Her bir özel taksonomide dolaşmak istiyorum (benim durumumdaki kategoriler) ve her biri için çeşitli yayınlar oluşturmak istiyorum.

Çıktının bir örneği şöyle olabilir:

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

Tabii ki, özel yazı tipi için mevcut olan herhangi bir taksonomiyi tekrarlardı.

7
curtismchale

Yukarıdaki cevap biraz kırıcı olduğu için başka bir cevap vereceğimi düşündüm, ayrıca post_type için tüm taksonomileri alan başka bir katman ekledim.

$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;

Bulunan her gönderiyi bir $post__not_in dizisine eklemeniz önerilir; böylece yinelenen gönderilerin gelmesini önlemek için bunu WP_Query öğesine geçirebilirsiniz.

9
Joe Hoyle

Bunu mu arıyorsunuz?

<?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; ?>

Özel Taksonomi döngüsü nasıl oluşturulur

Umarım yardımcı olur

1
Maidul

Bu işlevi kopyalayıp yapıştırın.

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
        }
    }
}

Ardından, şablonunuzun herhangi bir yerinden aşağıdakilerle arayın:

display_all_products_from_all_categories();
0
drjorgepolanco