我想实现一个函数来获取wordpress中的某些帖子。
INPUT
PAGE_NUMBER
CATEGORY_NAME
可变
items_per_page = 10
输出
发布数组,就像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')时,它会返回“tech”类别中的第10~19个帖子,当我调用app_get_posts('3','wordpress')时,它会返回“wordpress”类别中的第20~29个帖子。
所以我想知道是否有办法找出这个问题。 感谢你。
答案 0 :(得分:0)
我猜上述原因不起作用的原因是因为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);
}