2011-04-25 76 views
0

我想顯示一個自定義帖子模板,在'類別',並有一個特定的'標籤'匹配的職位的標題名單。用標籤顯示文章的類別

比如我有城市名稱的帖子,

  • 紐約
  • 芝加哥
  • 德州
  • ...等

我再有幾類,

  • 個新聞
  • 活動
  • 公告
  • ...等

對於每一個崗位我做這些類別我然後分配城市的名稱相匹配的職位標籤之一。

例如,如果我有一個紐約的新聞項目,我選擇'新聞'類別,並指定'紐約'標籤。

當我在紐約的自定義帖子模板頁面上時,我想檢索與具有標籤名稱=紐約(帖子標題)的新聞類別相關聯的帖子。

但是,我的困境是,我無法弄清楚如何從帖子的標題動態生成標籤名稱。

例如,

<?php 
          $tag = wp_title('', FALSE); 
      query_posts('tag=' . $tag . ''); 

      if (have_posts()) while (have_posts()) : the_post(); 

        echo '<li>'; 

         the_title(); 

        echo '</li>'; 

      endwhile; 

      wp_reset_query(); ?> 

但使用wp_title獲取標籤名稱時,(),將與詞「新」和「紐約」之間的空間打印「紐約」。這不起作用。

爲了使其正常工作,需要使用連字符'new-york'。但我無法弄清楚如何使用連字符代替空格來生成基於標題的標籤名稱。

我希望這是有道理的。

我很感謝任何幫助。

謝謝。

回答

0

query_posts功能中,tag參數指的是slu,,而不是名稱。不幸的是,query_posts函數不能接受標籤名稱;然而,有一個很棒的WP功能可以作爲我們的中介。爲了得到一個基於名稱的標籤信息,您可以使用此:

$term = get_term_by('name', $name_of_tag, 'post_tag'); 

$term將與以下信息的對象:

term_id 
name 
slug 
term_group 
term_taxonomy_id 
taxonomy 
description 
parent 
count 

舉例來說,你可以得到編號爲$term->term_id。所以把這個放在一起,你應該能夠完成你需要什麼:

$tag_name = wp_title('', FALSE); 
$term = get_term_by('name', $tag_name, 'post_tag'); 
query_posts('tag_id=' . $term->term_id); 

我沒有測試什麼wp_title實際返回,所以我不知道這是否正常返回的稱號,但我M於這個信任你;)

來源:

http://codex.wordpress.org/Function_Reference/WP_Query

http://codex.wordpress.org/Function_Reference/get_term_by

相關問題