下面是一个如何在第二个代码中使用第一个代码的示例。在我的代码中,我还冒昧地提出了一种方法,通过将代码拆分为单独的函数,使代码更清晰、更易于阅读。
// add the following helper functions to functions.php
function travel_trip_type_image_url( int $term_id ) {
$img_id = get_term_meta( $term_id, \'wp_travel_trip_type_image_id\', true );
return ( $img_id && is_int($img_id) ) ? wp_get_attachment_url( $img_id ) : \'\';
}
function travel_location_terms() {
$terms = get_terms( array(
\'taxonomy\' => \'travel_locations\',
\'hide_empty\' => false,
\'parent\' => 0
) );
return ( $terms && ! is_wp_error($terms) ) ? $terms : array();
}
function itineraries_query( string $term ) {
$args = array(
\'post_type\' => \'itineraries\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'travel_locations\',
\'field\' => \'slug\',
\'terms\' => $term,
),
),
);
return new WP_Query($args);
}
function itineraries_loop( WP_Query $query ) {
if ( $query->have_posts() ) {
while( $query->have_posts() ) {
$query->the_post();
the_title(\'<h2>\',\'</h2>\');
// use get_template_part( \'your-post-entry-template\' );
// or write html markup here
}
wp_reset_postdata();
}
}
function travel_type_header( WP_Term $term ) {
if ( $term_img_url = travel_trip_type_image_url( $term->term_id ) ) {
// modify html output as needed
printf(
\'<a href="%s"><img src="%s" alt="%s"></a>\',
esc_url( get_term_link( $term ) ),
esc_url( $term_img_url ),
esc_attr( $term->name )
);
}
}
// use in some template file
foreach ( travel_location_terms() as $travel_location ) {
travel_type_header( $travel_location );
itineraries_loop( itineraries_query( $travel_location->slug ) );
}
但是如果您不想使用建议的拆分,那么只需将第一个代码放在
foreach
和
$term_link
线
要使用此代码,您需要
检查并在需要时更新中使用的元密钥travel_trip_type_image_url()
,检查并在需要时更新taxonomy
和post type
代码中使用的名称更新内部的循环条目html输出itineraries_loop()
根据您的喜好,更新其中的术语标题html输出travel_type_header()
根据您的喜好,您可以在自定义分类法和帖子类型中使用术语和帖子