Как получить определенные сообщения в WordPress - PullRequest
0 голосов
/ 11 декабря 2011

Я хочу реализовать функцию для получения определенных сообщений в WordPress.

INPUT

номер_страницы

имя_категории

VARIABLE

items_per_page = 10

OUTPUT

массив записей, как результат функции 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', 'tech'), она возвращает 10 ~ 19 сообщения в категории "tech", когда явызовите app_get_posts ('3', 'wordpress'), он вернет 20 ~ 29-е сообщения в категории "wordpress".

Поэтому мне интересно, есть ли способ выяснить эту проблему.Спасибо в адвенсе.

1 Ответ

0 голосов
/ 11 декабря 2011

Полагаю, причина, по которой вышеприведенное не сработает, заключается в том, что таблица wp_posts не имеет поля CATEGORY или POSTS. Я изменил ваш код, чтобы вы могли возвращать сообщения на основе taxonomy:

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); 
 }
...