サポート » 使い方全般 » カスタムタクソノミーの一覧出力で除外指定ができない

  • 解決済 wadapu

    (@wadapu)


    カスタム投稿タイプ、カスタム分類を作っています。

    カスタム分類アーカイブページに、カテゴリー一覧のようなカスタム分類の一覧を出力しようとしています。
    一覧を出力したうえで、現在表示しているアーカイブは強調したいです。

    wp_list_categories( 'taxonomy=カスタムタクソノミー名&title_li=&orderby=name&exclude=13,14');

    と書いたところ、除外指定(exclude)が効きません。
    デフォルトのカテゴリーじゃないと効かないんでしょうか。

    wp_tag_cloud を使うと除外指定が効くのですが、
    classに「carrent-cat」が入らないので困っています。

    除外指定が効かないのは仕様でしょうか。
    なにか別な方法があればご教授お願い致します。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • &exclude=13,14
    タームID でも効きます。

    トピック投稿者 wadapu

    (@wadapu)

    &exclude=13,14
    を入れると「カテゴリーなし」と表示されてしまいます。
    IDがまちがっていないかは何度も確認したのですが…合っています。

    &exclude=13,14を外すと一覧が正常に表示されます。
    記述の仕方がまちがっているのでしょうか…

    トピック投稿者 wadapu

    (@wadapu)

    いろいろ試したところ
    excludeのID指定は、カテゴリーIDのみで、タームID指定はできないってことみたいです。
    私の認識不足でした…

    タームIDの除外指定をしたい場合は、wp_list_categoriesでは無理ということでしょうか。
    別のタグを使うとしたら、現在表示しているタクソノミーを強調しつつ一覧取得したい場合、どう書いたらいいんでしょう。

    そうですか。実際、私はできています。

    <?php
    wp_list_categories('taxonomy=genre&title_li=');
    
    wp_list_categories('taxonomy=genre&exclude=6&title_li=');
    ?>

    どう見比べても、下の方は タームID=6 が表示されていません。

    include 指定は効きますか?

    トピック投稿者 wadapu

    (@wadapu)

    include指定はできました。
    どうしてなんでしょう…excludeだけ効きません…カテゴリーなし、と表示されます。
    記載しているのはtaxonomy.php内です。

    モデレーター gatespace

    (@gatespace)

    カスタム分類(タクソノミー)のアーカイブにおいて、
    今表示しているカスタム分類(タクソノミー)の除外したタクソノミー一覧をwp_list_categoriesを使って表示したいって事ですか?

    トピック投稿者 wadapu

    (@wadapu)

    今表示しているカスタム分類の一覧を表示したいです。
    今表示しているカスタム分類も含まれたものを一覧で表示、
    ただしその中で特定のもの(今回はタームID13,14のふたつ)は表示したくありません。

    gatespaceさんのおっしゃった内容で合っていると思います。

    wp_list_categories( array(
      		'taxonomy' => 'genre',
      		'orderby' => 'name',
      		'order' => 'DESC',
      		'exclude' => '13,14',
      		'title_li' => ''
      	));

    上記のコードで、excludeの指示を抜けば一覧が表示されます。
    excludeを入れると、「カテゴリーなし」となります。

    表示したいのは
    カスタム分類genreのなかのタクソノミー1、2、3 … 15まであり、
    13と14を抜いた一覧を出したい。

    そのうえで、現在表示しているページのタクソノミーは強調表示したいです。

    どうして除外だけできないんでしょう…
    plute1234さんのおっしゃったとおり
    excludeをincludeにしたときは、しっかり13.14のみ表示されました。

    モデレーター gatespace

    (@gatespace)

    pluto1234さんの環境ではできているのでどこか違うんでしょうね。

    お使いになっているテーマをデフォルトにして、プラグインも全てオフにして確認してみましたか?
    (ただし、カスタム分類をプラグインで実装しているのであればそれは有効化しておいてください)

    ‘exclude’ は、カンマ区切りの文字列でなく配列でも指定可能なようです。

    wp_list_categories( array(
      		'taxonomy' => 'genre',
      		'orderby' => 'name',
      		'order' => 'DESC',
      		'exclude' => array(13,14),
      		'title_li' => ''
      	));

    ではどうですか?

    ‘include’ が効くなら

    $terms = get_terms('genre');
    foreach($terms as $term) {
      if (!($term->term_id==13 || $term->term_id==14)) $term_ids[] = $term->term_id;
    }
    wp_list_categories( array(
      		'taxonomy' => 'genre',
      		'orderby' => 'name',
      		'order' => 'DESC',
      		'include' => $term_ids,
      		'title_li' => ''
      	));

    ではどうですか?本質的な解決方法ではありませんが・・。

    トピック投稿者 wadapu

    (@wadapu)

    plute1234さんありがとうございます!
    なるほどリストにして渡す…勉強になりました。
    includeの方法で思った通りのものを実装できました、本当にありがとうございました。

    gatespaceさんも助言ありがとうございました。
    結局原因わからずなのですが、プラグインをオフにして確認する時間が惜しく…
    そのうち試して進展がありましたら追記します。

    本当にありがとうございました。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「カスタムタクソノミーの一覧出力で除外指定ができない」には新たに返信することはできません。