簡體   English   中英

如何使用id使用query_posts獲取Wordpress帖子

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM