1

私はPHPの経験がありますが、WordPressは私にとってかなり新しいものであり、ここで苦労しています。

友達がテーマを完成させるのを手伝おうとしています。彼は複数のアーティストと協力しており、各アーティストには、そのアーティストに関する投稿のみを表示したいアーティスト(Tom Jonesなど)にちなんで名付けられたWPページがあります。各アーティスト(Tom Jones)のタグを(tom-jones)のようなスラッグで定義します。

コーデックスに続いて、私は次のようにテンプレートでループを準備しています:

$tags = get_tags();
//query_posts( array( 'tag' => $tag->slug ) );
query_posts( array( 'tag' => 'tom-jones' ) );

if( have_posts()) : while( have_posts() ) : the_post();
  echo '<li id="feed<?php theID(); ?>" style="border-bottom:1px solid #404040;">';
  echo '<table><tr><td width="40">';
  echo '<img src="<?php echo get_post_meta($post->ID, 'image_path', true); ?>" />';
  echo '</td><td><a href="';
  the_permalink(); 
  echo '">';
  the_title();                            
  echo '</a><br><span class="smTxt">Posted by ';
  the_author();
  echo ' on <em>';
  the_time('F jS, Y');
  echo '</em></span><br>';
  the_excerpt();
  echo '</td></tr></table></li>';
  endwhile;
else:
  echo '<h3>There are no posts.</h3>';
endif;

コメントアウトされたquery_postは、アーティストの特定のスラッグをつかんだと思いますが、「投稿なし」が返されます。現在のようにハードコーディングすると、期待どおりに機能します。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これを試して

query_posts( array( 'tag' => get_query_var('tag') ) );

この投稿はあなたを助けるかもしれません

アップデート:

あなたが言っartistたように習慣texonomyなのでこれを試してみてください

$the_tax = get_taxonomy( get_query_var( 'taxonomy' ) );
query_posts( array( 'artist' => $the_tax->labels->name ) );

wp_reset_query()使用しているときはループの後に使用する必要がありますquery_posts

あなたはこの投稿を読むことができます

更新: (WP_Queryを使用)

$the_tax = get_taxonomy( get_query_var( 'taxonomy' ) );
$args = array(
'tax_query' => array(
    array(
        'taxonomy' => 'artist',
        'field' => 'slug',
        'terms' => $the_tax->labels->name
    )
)
);
$query = new WP_Query( $args );
于 2012-07-15T19:32:59.683 に答える