我正在尝试制作一个顶部有父类别下拉列表的页面,因此一旦您选择任何类别,如果有子类别,它将加载另一个下拉列表。并且根据选择内容(类别页面)将在不刷新页面的情况下加载。
我从 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>
两个代码都可以正常工作并加载具有所选类别的页面。但是我真正想要的是最初只有一个带有父类别列表的下拉列表,当用户选择该类别时,将出现另一个带有子类别的下拉列表,并且如果选择的不是另一个,则会在子类别中出现一次..和依此类推,取决于类别的深度。
我还想只列出登录用户有权访问的那些类别,其余的将被隐藏。
非常感谢。