サポート » 使い方全般 » wp dropdown categoriesを使って…

  • wp dropdown categoriesを使って…タクソノミーのセレクトメニューって作れませんか?その場合テンプレートファイルは何を利用したらいいのでしょうか?

    下記コードをどうにか変更して利用したいのですが…。
    JavaScript を用いた送信ボタンなしドロップダウンメニュー
    <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>

    初心者です。
    [dropdown.selectedIndex]だとカテゴリーのIDを拾ってしまいますが、slugをひろう事はできないものなのでしょうか…。

    もしくは、類似した別の方法があれば教えてください。

8件の返信を表示中 - 16 - 23件目 (全23件中)
  • いけそうですね。下の訂正を入れて試してください。

    誤: wp_dorpdown_categories('show_option_none=Select taxonomy&taxonomy=area');
    正: wp_dropdown_categories('show_option_none=Select taxonomy&taxonomy=area');

    kjmtsh様
    ありがとうございます。

    <?php
    wp_dropdown_categories(‘show_option_none=Select taxonomy&taxonomy=area’);
    ?>
    <script type=”text/javascript”>
    var dropdown = document.getElementById(“cat”);
    function onCatChange() {
    if (dropdown.options[dropdown.selectedIndex].value > 0) {
    var taxTerm = dropdown.options[dropdown.selectedIndex].innerHTML;
    location.href = “<?php echo home_url(‘/’);?>?post_type=small&area=”+taxTerm;
    }
    }
    dropdown.onchange = onCatChange;
    </script>

    此方を貼り付けたところ、
    category-スラッグ.php 作成したが読み込まない
    category-ID.php 作成していない
    category.php もともとあるが読み込まない
    archive.php 作成していない
    index.php これを表示します。

    でアドレスバーは
    http://example.com/area/58
    となってます。

    で、何が表示されてるんですか?

    kjmtshさんのコードは、正常に動作します。

    ただし、以下のような場合には、正常に動作しません。

    testの条件
    Twentytwelve で、サイドバーにカテゴリウィジェットが、ドロップダウン形式でセットされている場合

    functions.php
    
    add_action('init', 'my_custom_type');
    add_action('init', 'my_custom_tax');
    function my_custom_type() {
        $args = array(
            'public' => true,
            'label'  => 'small',
            'taxonomy' => array('category', 'post_tag', 'area'),
            'supoorts' => array('title', 'editor', 'thumnail', 'excerpt', 'custom-field'),
            'rewrite' => array('slug' => 'small'),
            'has_archive' => true
        );
        register_post_type('small', $args);
    }
    function my_custom_tax() {
        register_taxonomy(
            'area',
            'small',
            array(
                'label' => 'area',
                'rewrite' => array('slug' => 'area'),
                'hierarchical' => true
            )
        );
    }

    twelveのcategory.php 45行くらい

    <?php endif; ?>
    <?php
    wp_droppdown_categories('show_option_none=Select taxonomy&taxonomy=area');
    ?>
    <script type="text/javascript">
    var dropdown = document.getElementById("cat");
    function onCatChange() {
        if (dropdown.options[dropdown.selectedIndex].value > 0) {
            var taxTerm = dropdown.options[dropdown.selectedIndex].innerHTML;
            location.href = "<?php echo home_url('/');?>?post_type=small&area="+taxTerm;
        }
    }
    dropdown.onchange = onCatChange;
    </script>
    		</div><!-- #content -->
    	</section><!-- #primary -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    動作が確認できたコード

    <?php endif; ?>
    <?php
    
    wp_dropdown_categories('show_option_none=Select taxonomy&taxonomy=area&name=tax-area');
    ?>
    <script type="text/javascript">
    var dropdown = document.getElementById("tax-area");
    function onCatChange() {
        if (dropdown.options[dropdown.selectedIndex].value > 0) {
            var taxTerm = jQuery("#tax-area option:selected").text();
            location.href = "<?php echo home_url('/');?>?post_type=small&area="+taxTerm;
        }
    }
    dropdown.onchange = onCatChange;
    </script>
    		</div><!-- #content -->
    	</section><!-- #primary -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    mamagoto1031さん、

    後出しじゃんけんが多すぎませんか?

    回答する人は、それなりの時間をかけてコードを書いてくれています。

    初心者です、動きませんと書くだけで、本当に解決すると思いますか?

    一方では、カスタム投稿や、カスタムタクソノミなどを書いていて、コピペしかできませんというのは理解に苦しみます

    nobita様
    私は別に喧嘩したい訳でもありません。
    そういう言い方ないんでは?

    あとだしじゃんけん?
    なんの事ですか?
    どういう事になってるか聞かれたのでそれに答えたらあとだしじゃんけん?
    ふざけた事言わないで下さい。

    >一方では、カスタム投稿や、カスタムタクソノミなどを書いていて、コピペしかできませんと
    いうのは理解に苦しみます
    世の中には先駆者がおられてそのコードを拝借して構築してるだけで何が初心者ではないんですか?

    私のやりたい事は初めから変わってません。

    kjmtsh様

    category-スラッグ.phpも
    category.phpも
    削除したら

    index.phpで表示されますが、それでは他の機能に大いに支障がでてしまいます。

    後出しじゃんけんの意味は、

    質問に回答する人がやりたい事を把握できるように

    問題解決のためのチェックリスト

    に書かれている内容を参考にして、質問の準備を周到にすべきです という意味です。

    また初心者を自称する場合は、回答者の回答の中身を十分に検討したうえで、具体的な書き込みをしてほしいという意味です。

    コピペしかできない初心者というお話ですが、それですと問題解決のためのコミュニケーションが困難になりますので、回答を理解しようとする考え方がないと、解決は難しいことも少なくありませんので、それが当たり前という考え方だと、自分自身の問題の解決を遅らせることもあるでしょう

    コードに対する返答が全くないのは、残念ですが 執着するつもりはありません

    良い回答者に巡り合えるといいですね

    質問以外の回答は結構です。

8件の返信を表示中 - 16 - 23件目 (全23件中)
  • トピック「wp dropdown categoriesを使って…」には新たに返信することはできません。