1

親カテゴリのドロップダウン リストが一番上にあるページを作成しようとしているので、カテゴリを選択すると、子カテゴリがある場合は別のドロップダウン リストが読み込まれます。選択に従って、ページを更新せずにコンテンツ (カテゴリ ページ) が読み込まれます。

以下のように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回以上選択された場合、別のカテゴリが表示されます..そしてカテゴリの深さに依存します。

また、ログインしたユーザーがアクセス許可を持っているカテゴリのみをリストし、残りは非表示にします。

どうもありがとう。

4

0 に答える 0