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