2012-05-04 119 views
0

在wordpress中,我有自定義頁面,並在頁面內嘗試調用特定類別的最新帖子。將自定義變量添加到get_posts

這樣做,我說這個創建變量...

$cat = get_post_meta($post->ID, "mom_cat", true); 

,並在頁面的自定義字段,我加mom_cat =(可變#)

在我的帖子,我我試圖根據我在自定義字段中放置的變量類別#顯示最近的帖子。我試過這個,但它不起作用...

<?php 
global $post; 
$myposts = get_posts('numberposts=4&category=$cat'); 
    foreach($myposts as $post) : 
?> 

Hoever那不工作。如何將變量添加到「category =」以便根據我的自定義字段設置顯示類別?

感謝

+0

我做這個了... ... $ myposts = get_posts(陣列( 'numberposts'=> 4, '分類'=> $貓)); –

回答

2

你不應該使用自定義字段定義類別時的WordPress擁有所有的工具,您在您的處置。你應該做的是找到你的自定義帖子正在註冊的地方,並且添加:

'taxonomies' => array('category') 

...到你的參數數組。這將使您能夠檢查您的自定義帖子所需的類別。如果你不能找到在自定義後類型被註冊,這不是添加到您的functions.php文件:

add_action('init', 'add_category_to_custom'); 
function add_category_to_custom() 
{ 
    register_taxonomy_for_object_type('category', 'custom_post_name'); 
} 

,那麼你可以參考你的自定義後,像這樣:

$posts = get_posts(array('numberposts' => 4, 'category' => $cat_ID, 'post_type' => 'custom_post_name')); 

更新:我不會建議使用頁面顯示類別信息,但我相信你有你的理由。我仍然會避免在「自定義字段」中放置類別標識,因爲如果您的某個類別標識發生更改,則可能會導致大量問題。

我會建議您的情況是命名這些特定頁面完全相同的匹配類別。然後做這樣的事情:

<?php 
/* 
IF THE PAGE HAS A MATCHING CATEGORY, 
DISPLAY 5 OF THE MOST RECENT POSTS IN THAT CATEGORY 
*/ 
if($catID = get_cat_ID(get_the_title(get_the_ID()))) 
{ 
    $posts = get_posts(array('numberposts' => 5, 'category' => $catID)); 
    foreach($posts as $post) : setup_postdata($post); 
    ?> 
     <!-- POST HTML GOES HERE --> 
    <?php 
    endforeach; 
} 
?> 
+0

如果你想抓住你的自定義帖子和標準帖子,請將'post_type'=>'custom_post_name'改爲:'post_type'=> array('custom_post_name','post') – maiorano84

+0

嗯,我不確定是否我在原文中正確解釋了它。以汽車爲例,我有一個博客講述寶馬,奔馳,雷克薩斯等。 我爲寶馬創建了一個專門的頁面,然後爲奔馳等創建了一個頁面。我希望寶馬頁面能夠繪製我列出的最後5篇帖子是在寶馬類別下列出的。我將寶馬類別(如#5)放在自定義字段中,那將是我的變量,但不起作用。 –

+0

對不起,我讀「自定義頁面」爲「自定義文章」。請審查,並讓我知道這是否有幫助。 – maiorano84