サポート » 使い方全般 » タグクラウドをドロップダウンメニュー化したい

  • 解決済 isseihara

    (@isseihara)


    <?php wp_tag_cloud(); ?>」で表示されるタグクラウドをドロップダウンメニュー化して表示する方法を模索しています。

    PHPコードはどのように書けばよろしいでしょうか?

    CODEXによると、

    タグクラウドを表示せずに配列として取得
    タグクラウドのデータを他の PHP コードで使うために、変数 $a に格納
    <?php $a = wp_tag_cloud('format=array' ); ?>

    とあるので、プラグイン等を使わなくても実装可能かとおもいます。が、phpの知識はほとんど初心者の域。

    <select onchange='document.location.href=this.options[this.selectedIndex].value;'>
    <option value="" selected="selected">タグクラウドのドロップダウンメニュー</option>
    <?php
    $a = wp_tag_cloud('format=array');
    foreach(): ?>
    <option value="<?php bloginfo('url'); ?>/?tag=タグスラッグの値">タグの名称</option>
    <?php endforeach; ?>
    </select>

    ↑↑↑
    このあたりまでは自力でわかるのですが、ここから先が行き詰まっています。(タグスラックの値のみを抽出して表示させる方法がわかればなんとかなりそうなのですが…)
    微々たる知識しかないゆえ、解決策が講じられない状態です。

    おわかりになる方、教えて頂けたら幸いです。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    isseiharaさん、こんにちは。

    wp_tag_cloudだと、format=arrayの引数を指定しても、リンクを含めた文字列が返ってきてしまうので、ドロップダウンメニューとして表示するのは逆に面倒です。

    要は全タグを取得できれば良いので、wp_tag_cloudでも内部的に使用されているget_tagsを使ったほうが簡単に記述できます。

    <?php $tags = get_tags(); if ( $tags ) : ?>
    		<select onchange="document.location.href=this.options[this.selectedIndex].value;">
    			<option value="" selected="selected">タグドロップダウンメニュー</option>
    <?php foreach ( $tags as $tag ): ?>
    			<option value="<?php echo clean_url( get_tag_link( $tag->term_id ) ); ?>"><?php echo wp_specialchars( $tag->name ); ?></option>
    <?php endforeach; ?>
    		</select>
    <?php endif; ?>

    すごい!

    求めていたものが完璧に実現しました!

    jim912さん、ありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「タグクラウドをドロップダウンメニュー化したい」には新たに返信することはできません。