على الرغم من أنني تمكنت من الحصول على هذا العمل من أجل الفئات العادية WP الفئات ، لم أتمكن من تشغيله مع التصنيفات المخصصة.
أرغب في الدخول في كل تصنيف مخصص (الفئات في حالتي) وإنتاج عدد من المشاركات لكل منها.
مثال على الإخراج هو:
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
بالطبع سوف يتكرر ذلك من خلال أي تصنيف متاح لنوع المنشور المخصص.
اعتقدت أنني سأقدم إجابة أخرى لأن الإجابة المذكورة أعلاه غير متطابقة قليلاً ، كما أنني أضفت طبقة أخرى تحصل على جميع التصنيفات لنوع 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;
يوصى بإضافة كل منشور تم العثور عليه إلى صفيف $post__not_in
، لذلك يمكنك تمرير ذلك إلى WP_Query
لمنع ظهور مشاركات مكررة.
هل تبحث عن هذا ؟
<?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; ?>
آمل أن يساعد
انسخ هذه الوظيفة والصقها في وظائفك
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
}
}
}
ثم اتصل به من أي مكان في القالب الخاص بك باستخدام:
display_all_products_from_all_categories();