[英]How to get a Wordpress post by Id using query_posts
我正在嘗試使用query_posts通過ID加載帖子,但是它總是返回一個空數組。 我使用SQL隨機獲得一個帖子ID,如下所示;
$randomProdSql = "SELECT ID FROM `posts` WHERE post_status = 'publish' ORDER BY RAND() LIMIT 0,1";
然后,我將其加載到變量中;
$randomPost = $wpdb->get_var($randomProdSql);
這可以正常工作,如果我將其打印出來,則會得到一個ID。 然后,我這樣調用query_posts;
$args = array(
'p' => $randomPost
);
$posts = query_posts($args);
現在,我希望$ posts變量包含該帖子。
print_r($args);
print_r($posts);
我得到:
Array
(
[p] => 778
)
Array
(
)
誰能看到我在做什么錯?
如下更新代碼:
query_posts('p='.'"$randomPost"');
另外,可以使用get_post()方法而不是使用query_posts()方法獲得單個帖子。
$my_post = get_post($randomPost);
echo $my_post->post_title;
根據您的代碼,您共享了隨機需要的帖子ID。 以下代碼將以隨機方式為您獲取帖子ID。
通過使用post_per_page
您可以控制結果中返回的帖子數。 同樣, fields
將強制查詢返回帖子的ID。 但是,如果您想檢索其他任何字段,請從此處將其刪除。 作為,它僅支持id字段。
有關詳細信息,請參閱此鏈接 :
<?php
$args = array(
'post_status' => 'publish',
'orderby' => 'rand',
'fields' => 'ids',
'posts_per_page' => '1'
);
$posts = query_posts($args);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.