2016-09-18 3 views
0

私はカスタムポストタイプの「写真」とカスタム分類法「catphoto」を作成しました。カスタム分類項目の用語(post_tag)を取得するにはどうすればよいですか? Wordpress

タイプ '写真'はタクソノミーとして 'catphoto'と 'post_tag'をサポートします。

ここでは、クライアント用に1つのフィルタを作成する必要があります。

taxonomy-catphoto.phpページall post_tags現在の「catphoto」アイテムに属している必要があります。

たとえば、カスタム投稿タイプ「写真」の投稿があります。この投稿の名前は「Plane」です。この投稿は '1961-1981'に属します。また、 'スペース'、 '飛行機'、 ''、 '戦争'のような投稿タグがあります。

また、たとえば「兵士」という名前の「写真」の投稿があります。それは、 '1941年から1961年' catphoto項目に属し、 'WW2' を持つ 'USA'、 'ソ連' ポストタグと同様。

そして、私は1941年から1961年catphoto項目を選択したときに、今私は、リストを取得する必要があります: WW2 USA ソ連

私はこのようにしてみてください:今すぐ

if (substr($_SERVER['REQUEST_URI'],1,8) == 'catphoto'){ 
    $cur_terms = get_terms('post_tag'); 
    if ($cur_terms) { 
     foreach($cur_terms as $cur_term){ 
      echo $cur_term->name.'<br/>'; 
     } 
    } 
} 

私はすべてのcatphotoアイテムのすべての投稿タグを取得します。どのようにして確定的なcatphotoアイテムを制限することができますか?たとえば、「1941-1961」と入力します。

答えて

0

私はこれを$ _GETクエリで解決しました。とても簡単です... 最初は、(post_tagsのような)独自のタクソノミータイプを作成することに決めました。その名前は 'マーク'です。

その後スニペットがある

if (substr($_SERVER['REQUEST_URI'],1,8) == 'catphoto'){ 
    $term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy')); 

    $query = new WP_Query(array('post_type' => 'photo', 'catphoto' => $term->name)); 

    echo '<ul>'; 

    $uniqueTerms = array(); 
    $uniqueSlugs = array(); 
    $uniquePar = $term->slug; 

    while ($query->have_posts()) { 
     $query->the_post(); 
     $terms = wp_get_post_terms(get_the_ID(), 'mark', array("fields" => "all")); 

     foreach ($terms as $term1) 
     { 
      if(!in_array($term1->name, $uniqueTerms)) { 
       $uniqueTerms[] = $term1->name; 
       $uniqueSlugs[] = $term1->slug; 
      } 
     } 
    } 

    for ($var = 0; $var < count($uniqueTerms); $var++) 
     echo '<li><a href="'.esc_url(home_url('/catphoto/')).$uniquePar.'/?mark='.$uniqueSlugs[$var].'">'.$uniqueTerms[$var].'</a></li>'; 
    echo '</ul>'; 
} 

ので、醜いコードここにあるが、それは動作します。

、今分類-catphoto.phpに私が記入:WP_Queryクエリ

$query = new WP_Query(array('post_type' => 'photo', 'posts_per_page'=>56, 'paged'=> $paged, 'catphoto' => $term->name, 'mark' =>$mark)); 

敬具内部にほとんど変化

$mark = $_GET['mark']; 

その後、イゴール

関連する問題