- - (Update 2 des 8. August) - -
Schließlich ist eine gute Alternative has_term();
wordpress function verwenden, um alle Produkte von einiger Kategorie zu filtern, die in einer if
Aussage. Wenn Sie mehrere Kategorien haben, können Sie diese in ein Array einbetten, indem Sie auch die Funktion has_term();
verwenden.
Wie ich auf einen Kommentar, bevor sie unter gesagt haben, denke ich, dass Ihr Problem hier ist:
// Include the page content template.
get_template_part('content', 'page');
So wird ersetze ich es mit einigen benutzerdefinierten Code Ihnen zu zeigen, dass die Bedingung funktioniert fein:
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => -1
);
$loop = new WP_Query($args);
// Start the Loop
If($loop->have_posts()){
while ($loop->have_posts()) : $loop->the_post();
// Here it is your product category
if (has_term('mattress', 'product_cat', $loop->post);) {
// from here I display products thumbnails and name
echo '<div class="woocommerce-product" style="padding:5px; float:left;">';
if (has_post_thumbnail($product_id)) {
echo get_the_post_thumbnail($loop->post->ID, 'shop_catalog');
} else {
echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Placeholder" width="300px" height="300px" />';
}
echo '<div class="product-name">' . $loop->post->post_name . '</div>';
echo '</div>';
}
endwhile;
}
// If needed
wp_reset_query();
wp_reset_postdata();
?>
Es funktioniert auch ohne Bedingung: has_term('mattress', 'product_cat', $loop->post);
ersetzt $args
ein rray durch diese:
$args = array(
'post_type' => 'product',
'posts_per_page' => -1, // you can set here number of post per page
'tax_query' => array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'mattress '
))
);
Dieser Code ist getestet und voll funktionsfähigund es geht auf function.php Datei Ihrer aktiven Kind Thema oder Thema.
Referenz:
- - (Update 1 - 9. Juli) - -
Oder Sie können auch has_category();
Funktion zum Filtern in einem if
Aussage auf diese Weise verwenden:
<?php
global $post;
// Start the Loop
while (have_posts()) : the_post();
if (has_category('mattress', $post);) {
// Include the page content template.
get_template_part('content', 'page');
// If comments are open or we have at least one comment, load up the comment template.
if (comments_open() || get_comments_number()) {
comments_template();
}
}
endwhile;
?>
du versuchen könnte:
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => -1, // you can set here number of post per page
'tax_query' => array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'mattress '
))
);
$loop = new WP_Query($args);
If($loop->have_posts()){
while($loop->have_posts()) {
$loop->the_post();
// Include the page content template.
get_template_part('content', 'page');
// If comments are open or we have at least one comment, load up the comment template.
if (comments_open() || get_comments_number()) {
comments_template();
}
}
}
// If needed
wp_reset_query();
wp_reset_postdata();
?>
Dies ist kein „schreibe meine Code bitte "Website. Sie müssen Ihr spezifisches Problem erklären. Wenn jemand unter "geht nicht" antwortet, müssen Sie genau wissen, was nicht funktioniert. Weiter sagst du "lass uns sagen, ich habe eine Kategorie Matratze" - nun, DOCH? Und haben Sie Produkte in dieser Kategorie? Wenn nicht, dann scheint keine der Antworten zu funktionieren. Beide Antworten sind korrekt. Wenn es "nicht funktioniert", liegt das Problem wahrscheinlich darin, wie Sie es implementiert haben. –
Mögliches Duplikat von [WooCommerce Custom Loop, um alle Produkte einer bestimmten Kategorie zu erhalten] (http://stackoverflow.com/questions/15330666/woocommerce-custom-loop-to-get-all-product-from-one-specific- Kategorie) –