2014-07-13 131 views
0

這是我在一天中更好的時候困擾了我的東西。我爲我女朋友的烹飪博客創建了一個新的category.php模板文件(你可以看到它here)。確定wordpress中的類別頁面模板的類別標識

我想要一個類別頁面的特定佈局 - 不是由我使用的主題(拼布)提供的默認佈局。

我搜索了一下,最終發現我可以使用Wordpress PHP功能<?php single_cat_title($prefix, $display); ?>,如Wordpress Codex中所述。當時的重點是使用WordPress的簡碼[catlist]。簡碼可以採用類別名稱或類別ID。

我認爲這將是它,但不幸的是我女朋友的博客是雙語的,這意味着single_cat_title並不總是返回相同的價值。它可能會返回英語中的recipe和法語中的recette,這兩種都不能用於解決[catlist]中的類別。如果你認爲這是雙語博客的一個角落案例,那不是......它也適用於具有相同名稱的類別的博客(至於爲什麼你會這樣做,我不知道......)

我能找到的所有其他方法都是專門針對the_loop而不適用於我的情況。

無論如何,我以爲我會分享下面的答案,爲大家的利益。當我找到它時,它讓我的一天變得美好!

回答

0

檢索當前對象標識符的方式(無論是交,類別,標籤...)是使用較低級的Wordpress對象和即:

$wp_query->get_queried_object_id() 

在WordPress的的class reference說明。訣竅是知道給你的屬性的方法名稱和WordPress的不告訴你。

最接近描述的方法是get_queried_object()(參見function reference)。

爲我的網頁的最後模板如下:

<?php 
/** 
* The Template for displaying posts in the category view. 
* 
*/ 
get_header(); ?> 

     <div id="primary" class="site-content"> 
         <h1><?php single_cat_title("");?></h1> 
      <div id="content" role="main"> 
<?php echo do_shortcode('[catlist id='.$wp_query->get_queried_object_id().' orderby=date order=DESC excerpt=yes excerpt_size=25 thumbnail=yes numberposts=-1 template=del]'); ?>     
      </div><!-- #content --> 
     </div><!-- #primary .site-content --> 

<?php get_sidebar(); ?> 
<?php get_footer(); ?>