如何为每个自定义分类回显某些内容?
How can I echo certain content for each custom taxonomy?
我有一个页面,我想在其中显示各种智能手机的维修价格。
我创建了自定义 post 类型“Reparaturpreise”(维修价格)以及自定义分类法“Marken”(品牌)。
对于每个品牌,我想将品牌名称显示为标题,下面应该有一个 table,其中列出了各种维修价格。
这是我目前的代码:
<?php
$args = array(
'taxonomy' => 'marke',
'orderby' => 'name',
'order' => 'ASC'
);
$cats = get_categories($args);
foreach($cats as $cat) {
?>
<h2><?php echo strip_tags(get_the_term_list( $post->ID, 'marke', '', ', ' ));?></h2>
<?php
$args = array(
'post_type' => 'reparaturpreise',
'category' => 'apple',
'posts_per_page' => 999
);
$the_query = new WP_Query( $args );
?>
<table class="repair-prices-list">
<tr>
<th>Gerät</th>
<th>Display</th>
<th>Akku</th>
<th>Backcover</th>
</tr>
<?php
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<tr>
<td><?php echo strip_tags(get_the_term_list( $post->ID, 'marke', '', ', ' ));?> <?php the_title(); ?></td>
<td>€ <?php echo get_post_meta($post->ID, 'displayreparatur', true); ?>,-</td>
<td>€ <?php echo get_post_meta($post->ID, 'akkutausch', true); ?>,-</td>
<td>€ <?php echo get_post_meta($post->ID, 'backcover-reparatur', true); ?>,-</td>
</tr>
<?php
wp_reset_postdata();
endwhile;
endif;
?>
</table>
<?php
}
?>
现在它显示 3 table,但都具有相同的标题(第一个品牌)并且每个 table 显示所有手机,未按品牌过滤。
您可以在此处查看当前输出:
https://relaunch.websolute.at/reparaturpreise/
提前感谢您的帮助,如果我的英语不是最好的,请见谅。
目前你有:
<h2><?php echo strip_tags(get_the_term_list( $post->ID, 'marke', '', ', ' ));?></h2>
尝试:
<h2><?php echo strip_tags(get_the_term_list( $post->ID, $cat, '', ', ' ));?></h2>
当你试图得到不同的猫时。
您也可以将 posts_per_page
更改为 -1
以获得相同的 'unlimited' 结果。
我自己解决了,这是我使用的代码:
<?php
$custom_terms = get_terms('marke');
foreach($custom_terms as $custom_term) {
wp_reset_query();
$args = array('post_type' => 'reparaturpreise',
'tax_query' => array(
array(
'taxonomy' => 'marke',
'field' => 'slug',
'terms' => $custom_term->slug,
),
),
);
$loop = new WP_Query($args);
if($loop->have_posts()) {
echo '<h2>'.$custom_term->name.'</h2>'; ?>
<table class="repair-prices-list">
<tr>
<th>Gerät</th>
<th>Display</th>
<th>Akku</th>
<th>Backcover</th>
</tr>
<?php
while($loop->have_posts()) : $loop->the_post(); ?>
<tr>
<td><?php echo strip_tags(get_the_term_list( $post->ID, 'marke', '', ', ' ));?> <?php the_title(); ?></td>
<td>€ <?php echo get_post_meta($post->ID, 'displayreparatur', true); ?>,-</td>
<td>€ <?php echo get_post_meta($post->ID, 'akkutausch', true); ?>,-</td>
<td>€ <?php echo get_post_meta($post->ID, 'backcover-reparatur', true); ?>,-</td>
</tr>
<?php
endwhile;
?>
</table>
<?php
}
}
?>
我有一个页面,我想在其中显示各种智能手机的维修价格。 我创建了自定义 post 类型“Reparaturpreise”(维修价格)以及自定义分类法“Marken”(品牌)。 对于每个品牌,我想将品牌名称显示为标题,下面应该有一个 table,其中列出了各种维修价格。
这是我目前的代码:
<?php
$args = array(
'taxonomy' => 'marke',
'orderby' => 'name',
'order' => 'ASC'
);
$cats = get_categories($args);
foreach($cats as $cat) {
?>
<h2><?php echo strip_tags(get_the_term_list( $post->ID, 'marke', '', ', ' ));?></h2>
<?php
$args = array(
'post_type' => 'reparaturpreise',
'category' => 'apple',
'posts_per_page' => 999
);
$the_query = new WP_Query( $args );
?>
<table class="repair-prices-list">
<tr>
<th>Gerät</th>
<th>Display</th>
<th>Akku</th>
<th>Backcover</th>
</tr>
<?php
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<tr>
<td><?php echo strip_tags(get_the_term_list( $post->ID, 'marke', '', ', ' ));?> <?php the_title(); ?></td>
<td>€ <?php echo get_post_meta($post->ID, 'displayreparatur', true); ?>,-</td>
<td>€ <?php echo get_post_meta($post->ID, 'akkutausch', true); ?>,-</td>
<td>€ <?php echo get_post_meta($post->ID, 'backcover-reparatur', true); ?>,-</td>
</tr>
<?php
wp_reset_postdata();
endwhile;
endif;
?>
</table>
<?php
}
?>
现在它显示 3 table,但都具有相同的标题(第一个品牌)并且每个 table 显示所有手机,未按品牌过滤。
您可以在此处查看当前输出: https://relaunch.websolute.at/reparaturpreise/
提前感谢您的帮助,如果我的英语不是最好的,请见谅。
目前你有:
<h2><?php echo strip_tags(get_the_term_list( $post->ID, 'marke', '', ', ' ));?></h2>
尝试:
<h2><?php echo strip_tags(get_the_term_list( $post->ID, $cat, '', ', ' ));?></h2>
当你试图得到不同的猫时。
您也可以将 posts_per_page
更改为 -1
以获得相同的 'unlimited' 结果。
我自己解决了,这是我使用的代码:
<?php
$custom_terms = get_terms('marke');
foreach($custom_terms as $custom_term) {
wp_reset_query();
$args = array('post_type' => 'reparaturpreise',
'tax_query' => array(
array(
'taxonomy' => 'marke',
'field' => 'slug',
'terms' => $custom_term->slug,
),
),
);
$loop = new WP_Query($args);
if($loop->have_posts()) {
echo '<h2>'.$custom_term->name.'</h2>'; ?>
<table class="repair-prices-list">
<tr>
<th>Gerät</th>
<th>Display</th>
<th>Akku</th>
<th>Backcover</th>
</tr>
<?php
while($loop->have_posts()) : $loop->the_post(); ?>
<tr>
<td><?php echo strip_tags(get_the_term_list( $post->ID, 'marke', '', ', ' ));?> <?php the_title(); ?></td>
<td>€ <?php echo get_post_meta($post->ID, 'displayreparatur', true); ?>,-</td>
<td>€ <?php echo get_post_meta($post->ID, 'akkutausch', true); ?>,-</td>
<td>€ <?php echo get_post_meta($post->ID, 'backcover-reparatur', true); ?>,-</td>
</tr>
<?php
endwhile;
?>
</table>
<?php
}
}
?>