サポート » 使い方全般 » 子タクソノミーのアーカイブ

  • こんにちは。

    階層があるタクソノミーのアーカイブページ作成に困っています。

    タクソノミー(階層)のアーカイブページをつくってます。

    上記のPHPのコード上部に下記のコードを書き、店舗>店舗の種類(グルメ、生活、ファッション)のタクソノミーの子タクソノミー(グルメ→日本食、タイ料理。生活→病院、美容院、ファッション→洋服屋、ジュエリーなど)のみ一覧を表示させたいです。

    なんどやっても、親であるタクソノミー一覧しか表示されず3時間が経過。
    基本的なことなのかもしれませんが、よろしければご教示ください。

    taxonomy-shopcategories.php

    <?php
    $loop = new WP_Query( array( 'post_type' => 'shops', 'taxonomy' => 'shiopcategories','field' => 'slug','term' => $post->name,'posts_per_page' => 4,'orderby' =>rand) );
    while ( $loop->have_posts() ) : $loop->the_post();
    ?>
8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック投稿者 okomeken

    (@okomeken)

    追記:
    小タクソノミー(termというのですね)の数に応じて、
    phpファイルの数を増やす方法はなるべく避けたいです。

    何卒よろしくお願いします。

    ぱっと見て、
    shiopcategories はタイポかもしれない
    と思いました。

    トピック投稿者 okomeken

    (@okomeken)

    返信有難うございます。

    恐縮ではありますが、具体的にどういったことでしょうか。

    taxonomyを削除して試しましたが同じ状態になりました。

    タイポとはスペリングのミスのことを言います。(公式の用語ではないかもしれませんが)

    shiopcategories は i の文字が余分なのでは、ということです。

    トピック投稿者 okomeken

    (@okomeken)

    ご指摘いただきありがとうございます。

    カスタムポストを確認してスペルミスを修正して試しましたが、
    やはり2階層目のタクソノミーに絞り込まれずです・・・

    なお、現在機能しているように思える箇所は
    ・ランダムでの表示
    ・ポスト数
    ・タクソノミー

    そもそもアーカイブ用のコード記述に無理があるんでしょうか。

    度々もうしわけございません。

    トピック投稿者 okomeken

    (@okomeken)

    ちなみに全体的にこんな感じで記述しております。

    <div class="archive-st">
    <h2><?php
    if(is_tax()) {
    	$taxonomy = get_taxonomy(get_query_var('shopcategories'));
    	echo sprintf('%s "%s" の店舗及び施設一覧', $taxonomy->labels->name, single_term_title('', false));
    }?>
    </h2>
    
    <?php
    $loop = new WP_Query( array( 'post_type' => 'shops', 'taxonomy' => 'shopcategories','posts_per_page' => 4,'orderby' =>rand) );
    while ( $loop->have_posts() ) : $loop->the_post();
    ?>
    
    <div class="archive-st-l">
                  <h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a> <span>[ <?php echo  get_the_term_list( $post->ID, 'shopcategories', '', ', ', '' ); ?> ]</span><strong><img src="telicon.png" width="14" alt="電話番号"><a href="callto:<?php
        $field = get_post_meta($post->ID, 'textfield_post_2', true);
        print_r($field);
    ?>
    "><?php
        $field = get_post_meta($post->ID, 'textfield_post_2', true);
        print_r($field);
    ?></a></strong></h3>
    
    <div class="archive-st-l-th">
                <a href="<?php the_permalink() ?>"><?php
        if ( has_post_thumbnail() ) {
            // サムネイルを持っている場合に出力
            the_post_thumbnail('thumbnail');
        } else {
            // サムネイルを持っていないなら、NoImage画像
            echo '<img src="noimage.gif" width="170" alt="写真がありません">';
        }
    ?>
    </a>
    </div>
    
    <dl class="shop-s-access">
    <dd><?php echo  get_the_term_list( $post->ID, 'station', '', ', ', '' ); ?></dd>
    <p><?php the_content(); ?></p>
    </div>
    
    <?php endwhile;wp_reset_query(); ?>
    </div>

    codex を見ると、パラメータの渡し方が、tax_query を使うようになっていますね。

    http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF

    $args = array(
    	'tax_query' => array(
    		array(
    			'taxonomy' => 'people',
    			'field' => 'slug',
    			'terms' => 'bob'
    		)
    	)
    );
    $query = new WP_Query( $args );

    トピック投稿者 okomeken

    (@okomeken)

    おくれてすいません。

    再度挑戦してみます。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「子タクソノミーのアーカイブ」には新たに返信することはできません。