这里有一个快速的解决方案,可以引导您达到预期的结果。
$years = get_terms( array(
\'taxonomy\' => \'product-year\',
\'hide_empty\' => true,
) );
$cats = get_terms( array(
\'taxonomy\' => \'product-cat\',
\'hide_empty\' => true,
) );
if ( ! empty( $years ) && ! is_wp_error( $years ) ){
foreach ( $years as $year ) {
echo \'<strong>\'.$year->name.\'</strong>\';
if ( ! empty( $cats ) && ! is_wp_error( $cats ) ){
foreach ( $cats as $cat ) {
echo \'<strong>\'.$cat->name.\'</strong>\';
$args = array(
\'post_type\' => \'Products\',
\'tax_query\' => array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'product-year\',
\'field\' => \'term_id\',
\'terms\' => array( $year->term_id ),
),
array(
\'taxonomy\' => \'product-cat\',
\'field\' => \'term_id\',
\'terms\' => array( $cat->term_id ),
),
),
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
echo \'<table>\';
while ( $query->have_posts() ) {
$query->the_post();
$countries = get_the_terms( get_the_ID(), \'product-country\' );
if ( $countries && ! is_wp_error( $countries ) ) :
$countries_links = array();
foreach ( $countries as $country ) {
$countries_links[] = $country->name;
}
$countries_names = join( ", ", $countries_links );
}
echo \'<tr><td>\' . get_the_title( ) . \'</td>\'.\'<td>\' . $countries_names . \'</td></tr>\' ;
}
echo \'</table>\';
// Restore original Post Data
wp_reset_postdata();
}
}
}
}
}
请注意任何拼写错误(如果有)。