我试图在多选下拉列表中显示$ selected_category / s的子项并尝试以下操作;
<?php job_manager_dropdown_categories( array( 'taxonomy' => 'job_listing_category', 'hierarchical' => 1, 'name' => 'search_categories', 'selected' => $selected_category, 'child_of' => $selected_category, 'orderby' => 'id','hide_empty' => true) ); ?>
您可以通过在主页上选择父类别来达到下拉菜单,然后转到显示结果的此页面。我希望此页面上的下拉列表仅显示所选类别的子类别(因为它当前显示所有类别的所有父项和子项)以缩小结果范围。但是,尽管我使用的代码完美地适用于下拉列表,但它会删除父类别和父类别的搜索结果,因此会显示所有结果,直到您选择一个不太理想的子类别为止。
如何仅显示所选父级的子类别时,如何保留父类别和结果。
没有
的周围代码 <?php elseif ( $show_categories && ! is_tax( 'job_listing_category' ) && get_terms( 'job_listing_category' ) ) : ?>
<div class="search_categories">
<label for="search_categories"><?php _e( 'Category', 'wp-job-manager' ); ?></label>
<?php if ( $show_category_multiselect ) : ?>
<?php job_manager_dropdown_categories( array( 'taxonomy' => 'job_listing_category', 'hierarchical' => 1, 'name' => 'search_categories', 'selected' => $selected_category, 'child_of' => $selected_category, 'orderby' => 'id','hide_empty' => true) ); ?>
<?php else : ?>
<?php job_manager_dropdown_categories( array( 'taxonomy' => 'job_listing_category', 'hierarchical' => 1, 'show_option_all' => __( 'Any category', 'wp-job-manager' ),'orderby' => 'id', 'name' => 'search_categories', 'selected' => $selected_category, 'multiple' => false ) ); ?>
<?php endif; ?>
答案 0 :(得分:1)
它已经很久以前了,但我需要这个,看起来并不是很好的文档。
在第265行之后添加到wp-job-manager-functions.php(在函数get_job_listing_categories()之后)
function get_job_listing_categories_child($id_child) {
if ( ! get_option( 'job_manager_enable_categories' ) ) {
return array();
}
return get_terms( "job_listing_category", array(
'orderby' => 'id',
'order' => 'ASC',
'hide_empty' => true,
'child_of' => $id_child,
) );
}
如果你想访问该类别,你可以使用这样的东西:
<?php foreach ( get_job_listing_categories_child(86) as $cat ) : ?>
<option value="<?php echo esc_attr( $cat->term_id ); ?>">
<?php echo esc_html( $cat->name ); ?>
</option>
<?php endforeach; ?>
但是那时86你必须把你的孩子的头颅 要获得孩子头部的ID,请转到您的管理面板,然后单击要编辑的那个。 然后你会在url中看到tag_ID =,之后的nummer是你想要使用的id