2011-12-11 79 views
0

我想實現一個函數來獲取wordpress中的某些帖子。如何獲得wordpress中的某些帖子

INPUT

PAGE_NUMBER

CATEGORY_NAME

VARIABLE

items_per_page的= 10

OUTPUT

posts數組,就像query_posts()函數的結果一樣。

這裏是我的代碼:

$page_number = $_GET["page_number"] 
$category_name = $_GET["category_name"] 

function app_get_posts($page_number, $category,$items_per_page = 10) 
{ 
    global $wpdb; 
    $select ="SELECT POSTS FROM wp_posts WHERE CATEGORY = ".$category." LIMIT (".$page_number." - 1) * ".$items_per_page.",".$page_number." * ".$items_per_page; //it didn't work. 
    return $wpdb->query($select); 
} 

當我調用該函數app_get_posts(「2」,「科技」),它會返回10日〜19日的帖子中的「高科技」範疇,當我打電話app_get_posts('3','wordpress'),它會返回「wordpress」類別中的第20〜29個帖子。

所以我想知道是否有辦法解決這個問題。 Thx in advence。

回答

0

我猜上述原因不起作用是因爲wp_posts表沒有CATEGORYPOSTS字段。我修改你的代碼,所以你可以返回立足崗位上taxonomy:當我用「$陣列= app_get_posts

function app_get_posts($page_number, $category,$items_per_page = 10) 
{ 
    global $wpdb; 
    $start = ($page_number-1) * $items_per_page; 
    $select ="SELECT DISTINCT wp.* FROM wp_posts wp 
      INNER JOIN wp_term_relationships rs ON rs.object_id = wp.ID 
      INNER JOIN wp_terms t ON t.term_id = rs.term_taxonomy_id 
      WHERE t.name = ".$category." LIMIT ".$start.",".$items_per_page; 
    return $wpdb->query($select); 
} 
+0

克里斯特,謝謝lot.But( '2', 'CA',2); 回聲計數( $ array);「,它將總是返回1. :-(ps。是」wp「是wordpress數據庫的名稱嗎? – ellic

+0

@ellic - 在上面的查詢中,我使用名爲'wp'的別名作爲'wp_posts 'table。閱讀更多關於別名:http://msdn.microsoft.com/en-us/library/ms187455%28v=sql.90%29.aspx – Cyclonecode

相關問題