Wordpress WP_Term_Query 自定义分类 Select 选项
Wordpress WP_Term_Query Custom Taxonomy Select Options
下面的代码非常适合为名为 'make' 的自定义分类法中的所有条目拉入 select 选项列表。只拉父级别的就完美了
<select id="make" name="make">
<option value="">--</option>
<?php $term_query = new WP_Term_Query( array( 'taxonomy' => 'make', 'parent' => 0 ) ); if ( ! empty( $term_query->terms ) ) {
foreach ( $term_query ->terms as $term ) {
echo '<option class="' . $term->name . '" value="' . $term->name . '">' . $term->name . '</option>';
}
} else {
};?>
</select>
但是,我想创建此代码的另一个相同版本,但不是拉入所有父值的列表,它应该拉入所有子值。不适用于特定页面或 post,但应输出自定义分类法的所有子条目的 select 列表,忽略父条目。非常感谢任何帮助!
您可以使用 get_term_children 和 get_term_by 函数来构建您的第二个 select:
<select id="make" name="make">
<option value="">--</option>
<?php
$term_query = new WP_Term_Query( array( 'taxonomy' => 'make', 'parent' => 0 ) );
if ( ! empty( $term_query->terms ) ) {
foreach ( $term_query ->terms as $term ) {
$term_children = get_term_children( $term->term_id, 'make' );
foreach($term_children as $children){
$child = get_term_by( 'id', $children, 'make' );
echo '<option class="' . $child->name . '" value="' . $child->name . '">' . $child->name . '</option>';
}
}
} else {
};
?>
</select>
下面的代码非常适合为名为 'make' 的自定义分类法中的所有条目拉入 select 选项列表。只拉父级别的就完美了
<select id="make" name="make">
<option value="">--</option>
<?php $term_query = new WP_Term_Query( array( 'taxonomy' => 'make', 'parent' => 0 ) ); if ( ! empty( $term_query->terms ) ) {
foreach ( $term_query ->terms as $term ) {
echo '<option class="' . $term->name . '" value="' . $term->name . '">' . $term->name . '</option>';
}
} else {
};?>
</select>
但是,我想创建此代码的另一个相同版本,但不是拉入所有父值的列表,它应该拉入所有子值。不适用于特定页面或 post,但应输出自定义分类法的所有子条目的 select 列表,忽略父条目。非常感谢任何帮助!
您可以使用 get_term_children 和 get_term_by 函数来构建您的第二个 select:
<select id="make" name="make">
<option value="">--</option>
<?php
$term_query = new WP_Term_Query( array( 'taxonomy' => 'make', 'parent' => 0 ) );
if ( ! empty( $term_query->terms ) ) {
foreach ( $term_query ->terms as $term ) {
$term_children = get_term_children( $term->term_id, 'make' );
foreach($term_children as $children){
$child = get_term_by( 'id', $children, 'make' );
echo '<option class="' . $child->name . '" value="' . $child->name . '">' . $child->name . '</option>';
}
}
} else {
};
?>
</select>