仅显示兄弟类别的 Wordpress 下拉列表

Wordpress Dropdown that shows ONLY sibling categories

我有一个下拉列表显示所有博客类别及其 children。现在我的同事认为过滤以仅显示兄弟类别是个好主意。不是来自其他 parent 的 parent 类别或 child 类别。只有兄弟类别。

我翻来覆去一无所获,所以我打开了这个帖子。

我已经尝试过的东西:沃克 类。这听起来很有希望,但由于 WP 文档几乎没有任何内容,因此很难知道这是否可行。我还是倾向于no but again,很难说。

 <?php wp_dropdown_categories( 'show_option_none=Select a Category&hierarchical=1' ); ?>
 <script type="text/javascript">
 <!--
 var dropdown = document.getElementById("cat");
 function onCatChange() {
 if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
 location.href = "<?php echo esc_url( home_url( '/' ) ); ?>?cat="+dropdown.options[dropdown.selectedIndex].value;
 }
 }
 dropdown.onchange = onCatChange;
 -->
 </script>

更改您的 wp_dropdown_categories() 调用以仅包含当前页面父类别的子页面,并调整您的 depth 参数以不显示任何兄弟姐妹的子页面。

<?php wp_dropdown_categories( array(
    'show_option_none' => "Select a Category",
    'hierarchical' => 1,
    'child_of' => get_the_category()[0]->category_parent, // get the idea of the parent category for the current page/post
    'depth' => 1 // limit the depth of the heirarchy to only the current level
)); ?>

行为在 function reference page for wp_dropdown_categories() 上有详细记录。

<?php wp_dropdown_categories( array(
    'show_option_none' => "Select a Category",
    'hierarchical' => 1,
    'child_of' => get_the_category()[0]->term_id,
    'depth' => 1 
)); ?>

这很有用。如果您有多个类别列表,并且只想显示父类别的子类别,那么您必须使用它。

<?php wp_dropdown_categories( array(
    'show_option_none' => "Select a Category",
    'hierarchical' => 1,
    'child_of' => get_the_category()[0]->category_parent, // get the idea of the parent category for the current page/post
    'depth' => 1 // limit the depth of the heirarchy to only the current level
)); ?>