web-dev-qa-db-ja.com

クエリされた用語と分類法を動的に取得することは可能ですか?

これが可能かどうかはわかりませんが、私のタクソノミー.phpファイルを10個のカスタムタクソノミーすべてで同じように動作させようとしています。以下のコードは、私が必要とするとおりに機能します(つまり、URLの末尾が../inventory/yearmade/2017/の場合、yearmade分類用語が2017であるすべての投稿がループされ、出力されます(または任意の年) URLの最後に入力します)。

しかし、私は現在、10個の異なるtaxonomy-[taxonomy]。phpファイルを作成する必要があります。 taxonomy => '___'内の別の文字列(年式、メーカー、モデル、長さ、ビーム、エンジン、サイズ、馬力、ドライブ、トレーラー)。

用語の動的ロードに'terms' => '$queried_object->slug'(8行目)を使用できました。分類のために同じことをする方法はありますか?

6行目で同じことを試しました:'taxonomy' => '$queried_object->slug'が機能しません。

<?php
  $queried_object = get_queried_object();
  $query = new WP_Query( array(
    'post_type' => "inventory",
    'tax_query' => array(
      array(
        'taxonomy' => "yearmade',
        'field' => "slug",
        'terms' => "$queried_object->slug",
      )
    )
  ) );
  while ( $query->have_posts() ) : $query->the_post(); ?>

    <div>
      <h2><?php the_title(); ?></h2>
      <ul>
        <li>Year: <?php the_terms( $post->ID, 'yearmade'); ?>
        <li>Make: <?php the_terms( $post->ID, 'make'); ?>
        <li>Model: <?php the_terms( $post->ID, 'model'); ?>
        <li>Length: <?php the_terms( $post->ID, 'length'); ?>
        <li>Beam: <?php the_terms( $post->ID, 'beam'); ?>
        <li>Engine: <?php the_terms( $post->ID, 'engine'); ?>
        <li>Size: <?php the_terms( $post->ID, 'size'); ?>
        <li>Horsepower: <?php the_terms( $post->ID, 'horsepower'); ?>
        <li>Drive: <?php the_terms( $post->ID, 'drive'); ?>
        <li>Trailer: <?php the_terms( $post->ID, 'trailer'); ?>
      </ul>
    </div>

  <?php endwhile; ?>
<?php wp_reset_query(); ?>
1
codeview

分類テンプレートでは、照会されるオブジェクトは WP_Term のインスタンスであり、そのフィールドの1つは、用語が由来する分類になります。

したがって、taxonomy.php 次のように:

$queried_object = get_queried_object () ;
$args = array (
    'post_type' => 'inventory',
    'tax_query' => array (
        array (
            'taxonomy' => $queried_object->taxonomy,
            'field' => 'slug',
            'terms' => $queried_object->slug,
            ),
        ),
    ) ;
$query = new WP_Query ($args) ;