>在本文中,我們將探索get_posts()函數,其中一些示例有關如何在自己的項目中使用它。我們還將介紹此功能的一些典型用例,以及它與wp_query對象和get_pages函數的不同。
get_posts()函數是什麼?get_posts函數。此功能基本上用於通過應用自定義過濾器並根據一組參數對最終結果進行排序來檢索數據庫中的帖子。
注意:帖子是指帖子,頁面和自定義帖子類型。
為什麼不直接使用wp_query對象?
>插件使用get_posts函數,而不是wp_query對象,因為使用wp_query對象直接改變了主循環(即全局$ wp_query變量),這會導致站點問題。
get_posts()和get_pages()函數之間有什麼區別?
>它們兩個都用於從WordPress數據庫中檢索帖子,但是,以下是它們之間的一些區別:有更多參數可用,但是這些參數是最常用的參數。讓我們看一下這些參數:
<span><span><?php </span></span><span> </span><span><span>$args = array( </span></span><span> <span>"posts_per_page" => 5, </span></span><span> <span>"paged" => 1 </span></span><span> <span>"tax_query" => array( </span></span><span> <span>array( </span></span><span> <span>"taxonomy" => "category", </span></span><span> <span>"field" => "slug", </span></span><span> <span>"terms" => "videos,movies", </span></span><span> <span>) </span></span><span> <span>), </span></span><span> <span>"orderby" => "post_date", </span></span><span> <span>"order" => "DESC", </span></span><span> <span>"exclude" => "1123, 4456", </span></span><span> <span>"meta_key" => "", </span></span><span> <span>"meta_value" => "", </span></span><span> <span>"post_type" => "post", </span></span><span> <span>"post_status" => "publish" </span></span><span><span>); </span></span><span> </span><span><span>$posts_array = get_posts($args); </span></span><span> </span><span><span>?></span></span>posts_per_page:此參數定義要返回的帖子數量。如果您想要所有帖子,請使用-1。
> page:允許我們在使用posts_per_page參數時在一組帖子之間導航。它用於分頁。例如:假設posts_per_page是10,結果中有20個帖子,然後如果您分配了第2個,則返回最後10個帖子。
>讓我們使用get_posts函數查看一些示例。
>>如果要在網站上顯示最討論的帖子的頂部N號,則可以使用get_posts檢索它們。這是一個示例:
<span><span><?php </span></span><span> </span><span><span>$args = array( </span></span><span> <span>"posts_per_page" => 5, </span></span><span> <span>"paged" => 1 </span></span><span> <span>"tax_query" => array( </span></span><span> <span>array( </span></span><span> <span>"taxonomy" => "category", </span></span><span> <span>"field" => "slug", </span></span><span> <span>"terms" => "videos,movies", </span></span><span> <span>) </span></span><span> <span>), </span></span><span> <span>"orderby" => "post_date", </span></span><span> <span>"order" => "DESC", </span></span><span> <span>"exclude" => "1123, 4456", </span></span><span> <span>"meta_key" => "", </span></span><span> <span>"meta_value" => "", </span></span><span> <span>"post_type" => "post", </span></span><span> <span>"post_status" => "publish" </span></span><span><span>); </span></span><span> </span><span><span>$posts_array = get_posts($args); </span></span><span> </span><span><span>?></span></span>
>在這裡,我們使用訂單參數根據註釋數量對帖子進行排序,並檢索前10個帖子。
隨機帖子
<span><span><?php </span></span><span> <span>$args = array("posts_per_page" => 10, "orderby" => "comment_count"); </span></span><span> <span>$posts_array = get_posts($args); </span></span><span> <span>foreach($posts_array as $post) </span></span><span> <span>{ </span></span><span> <span>echo "<h1>" . $post->post_title . "</h1><br>"; </span></span><span> <span>echo "<p>" . $post->post_content . "</p><br>"; </span></span><span> <span>} </span></span><span><span>?></span></span>在上面的示例中,我們將值rand傳遞給了order_by參數。
>
>具有匹配的元密鑰和值這是做到這一點的代碼:
>
<span><span><?php </span></span><span> <span>$args = array("posts_per_page" => 1, "orderby" => "rand"); </span></span><span> <span>$posts_array = get_posts($args); </span></span><span> <span>foreach($posts_array as $post) </span></span><span> <span>{ </span></span><span> <span>echo "<h1>" . $post->post_title . "</h1><br>"; </span></span><span> <span>echo "<p>" . $post->post_content . "</p><br>"; </span></span><span> <span>} </span></span><span><span>?></span></span>>在這裡,我們正在檢索“ NarayanPrusty”審查的所有帖子。我們假設審閱者名稱是通過每個帖子的元密鑰“審稿人”存儲的。
>
>自定義帖子類型帶有自定義分類法
<span><span><?php </span></span><span> <span>$args = array("posts_per_page" => -1, "meta_key" => "reviewer", "meta_value" = "narayanprusty"); </span></span><span> <span>$posts_array = get_posts($args); </span></span><span> <span>foreach($posts_array as $post) </span></span><span> <span>{ </span></span><span> <span>echo "<h1>" . $post->post_title . "</h1><br>"; </span></span><span> <span>echo "<p>" . $post->post_content . "</p><br>"; </span></span><span> <span>} </span></span><span><span>?></span></span>在此示例中,我們正在檢索屬於“插件”和“主題”自定義分類法的定制帖子類型的帖子。
結論
>關於WordPress GET_POSTS函數的常見問題(FAQ)
>我可以使用get_posts檢索自定義帖子類型嗎?可以使用get_post檢索自定義郵政類型。您只需要在查詢中指定“ post_type”參數。例如,如果您具有稱為“產品”的自定義帖子類型,則可以使用以下方式檢索以下帖子(array('post_type'=>'products'));
>我如何對返回的帖子進行分組通過get_posts? >您可以通過使用'orderby'和'order'參數對get_post返回的帖子進行分類。 “ Orderby”確定要通過排序的字段,“順序”確定排序順序(ASC的上升和下降的降序)。例如,要按升序按標題對帖子進行排序,您將使用:get_posts(array('orderbod'=>'title','order'=>'asc'));要從特定類別檢索帖子?
如何使用get_post從多個類別中檢索帖子? >
>要從多個類別檢索帖子,您可以將類別ID數組傳遞到“類別”參數。例如,要獲取具有IDS 3和4的類別的帖子,您將使用:get_posts(array('category'=> array(3,4)));>
從特定日期範圍內檢索帖子,您可以使用'date_query'參數。此參數接受數組數組,每個內部數組都定義一個日期查詢子句。例如,要從2020年1月開始獲取帖子,您將使用:get_posts(array('date_query'=> array(array(array'=> 2020,'noter''=> 1)))));>>>>>以上是探索WordPress get_posts功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!