サポート » 使い方全般 » カスタム投稿の絞り込み

  • 解決済 dsc_heko

    (@dsc_heko)


    初めて投稿させていただきます。

    カスタム投稿にて登録した記事が
    archive-scheduletv.php
    というファイルで表示させております。

    上記ページにて、アーカイブ表示にてカスタム分類での絞り込み検索を行いたいと考えております。
    ※タクソノミー名は【scheduletv_day】というものを設定しております。
    archive-scheduletv.phpにて下記2種類のアーカイブ表示をしてテストを行っているのですが、
    `
    <ul>
    <?php wp_list_categories(array(‘title_li’ => ”, ‘taxonomy’ => ‘scheduletv_day’)); ?>
    </ul>

    にしている部分では
    http://www.aaaaa.com/Rewrite スラッグ/スラッグ名/
    という感じで表示されます。
    
    しかし

    <?php wp_dropdown_categories(‘show_count=0&exclude_tree=1&show_count=true&taxonomy=scheduletv_day&show_option_none=年/月を選択’); ?>

    <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>

    </select>
    `
    とするとhttp://www.aaaaa.com/?cat=6のようなURLにアクセスしてしまいます。

    wp_dropdown_categoriesを使った方法でも
    http://www.aaaaa.com/Rewrite スラッグ/スラッグ名/
    のように出すためにはどのようにすればよろしいでしょうか?

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック投稿者 dsc_heko

    (@dsc_heko)

    すいません。
    クオォートが変に入ってしまいました。。。
    念のため再度記載させていただきます。

    カスタム投稿にて登録した記事が
    archive-scheduletv.php
    というファイルで表示させております。

    上記ページにて、アーカイブ表示にてカスタム分類での絞り込み検索を行いたいと考えております。
    ※タクソノミー名は【scheduletv_day】というものを設定しております。
    archive-scheduletv.phpにて下記2種類のアーカイブ表示をしてテストを行っているのですが、

    <ul>
    <?php wp_list_categories(array('title_li' => '', 'taxonomy' => 'scheduletv_day')); ?>
    </ul>

    にしている部分では
    http://www.aaaaa.com/Rewrite スラッグ/スラッグ名/
    という感じで表示されます。

    しかし

    <?php wp_dropdown_categories('show_count=0&exclude_tree=1&show_count=true&taxonomy=scheduletv_day&show_option_none=年/月を選択'); ?>
    
    <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>
    
    </select>

    とするとhttp://www.aaaaa.com/?cat=6のようなURLにアクセスしてしまいます。

    wp_dropdown_categoriesを使った方法でも
    http://www.aaaaa.com/Rewrite スラッグ/スラッグ名/
    のように出すためにはどのようにすればよろしいでしょうか?

    英語の記事ですが,
    http://clicknathan.com/web-design/wp_dropdown_categories-for-custom-taxonomies/
    が参考になるかと思います。

    トピック投稿者 dsc_heko

    (@dsc_heko)

    ありがとうございます!

    function.phpに

    function click_taxonomy_dropdown($taxonomy) { ?>
    	<form action="/" method="get">
    	<select name="cat" id="cat" class="postform">
    	<option value="-1">Choose one...</option>
    	<?php
    	$terms = get_terms($taxonomy);
    	foreach ($terms as $term) {
    		printf( '<option class="level-0" value="%s">%s</option>', $term->slug, $term->name );
    	}
    	echo '</select></form>';
    	?>
    <?php }

    を記載して、テンプレートページには

    <?php click_taxonomy_dropdown( 'タクソノミー名' ); ?>
    <script type="text/javascript"><!--
    	var dropdown = document.getElementById("cat");
    	function onCatChange() {
    		if ( dropdown.options[dropdown.selectedIndex].value > '' ) {
    			location.href = "<?php echo get_option('home'); ?>/scheduletvs/"+dropdown.options[dropdown.selectedIndex].value;
    		}
    	}
    dropdown.onchange = onCatChange;
    --></script>

    にすることで
    http://www.aaaaa.com/?TAXONOMY=スラッグ名
    となりました!!

    あとはjavascriptの

    <?php echo get_option('home'); ?>/?TAXONOMY="+dropdown.options[dropdown.selectedIndex].value;

    部分をちょっと無理やりかもしれませんが

    <?php echo get_option('home'); ?>/Rewrite スラッグ/"+dropdown.options[dropdown.selectedIndex].value;

    にしてリンクに成功しました!

    手書きでRewrite スラッグを入れたのできれいではないかとは思っているのですが
    何とか形にできてよかったです。

    本当にありがとうございます!

    親スラッグも一緒にプルダウンに出るので
    その部分の消し方など
    categoryにある

    show_count=0&exclude_tree=1&show_count=true

    の設定と同じものができないか調べてみたいと思います。

    その部分ができましたら解決にできればと思います!!

    functions.phpに追加した

    $terms = get_terms($taxonomy);

    上記を

    $args = array(
                    'exclude_tree' => 1,
                  );
    $terms = get_terms( $taxonomy , $args);

    に変更してください。
    また、get_termsという関数にどうやって値を渡すかも知っていると便利です。

    http://elearn.jp/wpman/function/get_terms.html

    トピック投稿者 dsc_heko

    (@dsc_heko)

    またまた教えていただいてありがとうございます!!
    無事に希望するものができました!

    get_termsをうまく使っていけるようにして
    いろいろ試していきたいと思います。

    本当にありがとうございました!!
    解決済みにさせていただきます。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カスタム投稿の絞り込み」には新たに返信することはできません。