1

我正在尝试制作一个顶部有父类别下拉列表的页面,因此一旦您选择任何类别,如果有子类别,它将加载另一个下拉列表。并且根据选择内容(类别页面)将在不刷新页面的情况下加载。

我从 wordpress codex 中找到了两个代码,如下所示

<li id="categories">
    <h2><?php _e('Posts by Category'); ?></h2>
    <form action="<?php bloginfo('url'); ?>/" method="get">
    <div>
<?php
$select = wp_dropdown_categories('show_option_none=Select category&show_count=1&orderby=name&echo=0&hierarchical=1&hide_empty=0');
$select = preg_replace("#<select([^>]*)>#", "<select$1 onchange='return this.form.submit()'>", $select);
echo $select;
?>
    <noscript><div><input type="submit" value="View" /></div></noscript>
    </div></form>
</li>

<li id="categories"><h2><?php _e('Posts by Category'); ?></h2>
    <?php wp_dropdown_categories('show_option_none=Select category'); ?>

<script type="text/javascript"><!--
    var dropdown = document.getElementById("cat");
    function onCatChange() {
        if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
            location.href = "<?php echo get_option('home');
?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
        }
    }
    dropdown.onchange = onCatChange;
--></script>
</li>

两个代码都可以正常工作并加载具有所选类别的页面。但是我真正想要的是最初只有一个带有父类别列表的下拉列表,当用户选择该类别时,将出现另一个带有子类别的下拉列表,并且如果选择的不是另一个,则会在子类别中出现一次..和依此类推,取决于类别的深度。

我还想只列出登录用户有权访问的那些类别,其余的将被隐藏。

非常感谢。

4

0 回答 0