親カテゴリのドロップダウン リストが一番上にあるページを作成しようとしているので、カテゴリを選択すると、子カテゴリがある場合は別のドロップダウン リストが読み込まれます。選択に従って、ページを更新せずにコンテンツ (カテゴリ ページ) が読み込まれます。
以下のようにwordpress codexから2つのコードを見つけました
<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>
どちらのコードも正常に機能し、選択したカテゴリのページを読み込みます。しかし、私が正確に望むのは、最初は親カテゴリリストのドロップダウンが1つだけであり、ユーザーがカテゴリを選択すると、サブカテゴリの別のドロップダウンが表示され、サブカテゴリで1回以上選択された場合、別のカテゴリが表示されます..そしてカテゴリの深さに依存します。
また、ログインしたユーザーがアクセス許可を持っているカテゴリのみをリストし、残りは非表示にします。
どうもありがとう。