探索WordPress get_posts功能
鑰匙要點
-
WordPress中的get_post()函數用於通過應用自定義過濾器並根據一組參數對最終結果進行排序來檢索數據庫中的帖子。它返回一個wp_post對象的數組,每個對象代表單個帖子。
- get_post()函數優先於WP_QUERY對象,因為後者會改變主循環,並可能引起站點問題。 get_posts()函數和get_pages()函數都檢索帖子,但參數名稱,值和檢索的方法有所不同。 >
- get_posts()函數接受一系列參數以應用自定義過濾器並排序結果。這些參數包括post_per_page,page,sax_query,orderby,order,reford,meta_key,meta_value,post_type和post_status。 > get_post()函數可用於檢索最受歡迎的帖子,隨機帖子,具有匹配的元密鑰和值的帖子以及帶有自定義分類名稱的自定義帖子類型的帖子。然後將返回的結果循環進行進一步使用。
- >
- >許多WordPress插件通過自定義排序順序,基於特定的元密鑰或分類法檢索帖子,從數據庫中檢索帖子。您是否曾經想過這些插件如何在不編寫任何SQL查詢的情況下檢索自定義的帖子列表?在本教程中,我們將學習如何做到這一點。 >
>在本文中,我們將探索get_posts()函數,其中一些示例有關如何在自己的項目中使用它。我們還將介紹此功能的一些典型用例,以及它與wp_query對象和get_pages函數的不同。
get_posts()函數是什麼?
get_posts函數。此功能基本上用於通過應用自定義過濾器並根據一組參數對最終結果進行排序來檢索數據庫中的帖子。
get_post()函數返回WP_POST對象的數組。每個WP_POST對象代表一個單獨的帖子。
>內部get_posts使用wp_query對像根據傳遞的參數集來構建和執行SQL查詢。注意:帖子是指帖子,頁面和自定義帖子類型。
為什麼不直接使用wp_query對象?
>插件使用get_posts函數,而不是wp_query對象,因為使用wp_query對象直接改變了主循環(即全局$ wp_query變量),這會導致站點問題。
get_posts()和get_pages()函數之間有什麼區別?
>它們兩個都用於從WordPress數據庫中檢索帖子,但是,以下是它們之間的一些區別:-
它們之間的幾個參數名稱和值之間有所不同。儘管無論參數的名稱如何
- get_pages()函數當前不基於meta_key和meta_value參數檢索帖子。
- get_pages()函數不使用wp_query對象。相反,它直接構建和執行SQL查詢。
- get_posts()函數參數
get_post函數僅將一個參數作為數組。陣列包含用於應用自定義過濾器的不同參數並對結果進行排序。 >
這是一個代碼示例,該示例顯示瞭如何調用此函數和可用的各種參數:有更多參數可用,但是這些參數是最常用的參數。讓我們看一下這些參數:
<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>
> page:允許我們在使用posts_per_page參數時在一組帖子之間導航。它用於分頁。例如:假設posts_per_page是10,結果中有20個帖子,然後如果您分配了第2個,則返回最後10個帖子。
- >
- 順序:指定訂單參數的上升或降序。可能的值是“ desc”或“ asc”。 >
- 排除:它獲取逗號分隔的帖子ID列表,該列表將在數據庫搜索中排除。
- > meta_key和meta_value:如果您僅提供元數據,則將返回具有密鑰的帖子。如果您還提供meta_value,則返回了與meta_key的meta_value匹配的帖子。 >
- post_type:根據帖子,頁面或自定義帖子類型檢索內容。請記住,默認的post_type僅設置為顯示帖子,而不設置為頁面。 >
- > POST_STATUS:根據帖子狀態檢索帖子。可能的價值是:“發布”,“待處理”,“草稿”,“未來”,“任何”或“垃圾”。 >
- > wp_post對象
- get_post函數返回包含WP_POST對象的數組。這是WP_POST對象的重要屬性:
-
- ID:帖子的ID >
- > post_author:帖子的作者名稱
- post_type:post 的類型
- post_title:帖子的標題 >
- > post_date:發布的日期。格式:0000-00-00 00:00:00
- post_content:帖子的內容。
- post_status:職位的狀態 >
- comment_count:帖子的註釋數
get_posts
的示例>讓我們使用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個帖子。
隨機帖子在上面的示例中,我們將值rand傳遞給了order_by參數。<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>
登入後複製>
>具有匹配的元密鑰和值>的帖子
>我們可能想檢索所有具有特定元密鑰的帖子和分配的值。例如:有些博客都有每篇文章的審稿人。我們可能想檢索特定審稿人審查的文章。>
>在這裡,我們正在檢索“ NarayanPrusty”審查的所有帖子。我們假設審閱者名稱是通過每個帖子的元密鑰“審稿人”存儲的。<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>
登入後複製>
>自定義帖子類型帶有自定義分類法在此示例中,我們正在檢索屬於“插件”和“主題”自定義分類法的定制帖子類型的帖子。<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>
登入後複製結論
>在本文中,我們看到了get_posts函數如何工作,它支持的各種參數,循環循環返回結果以及一些示例用例。 GET_POSTS功能是最常用的WordPress函數之一,希望您現在可以開始使用自己的項目。
>>關於WordPress GET_POSTS函數的常見問題(FAQ)
> wordpress中的get_posts和wp_query之間有什麼區別?
get_posts和wp_query均用於從WordPress數據庫中檢索帖子。但是,它們的使用和靈活性有所不同。 get_posts是一個更簡單的功能,非常適合初學者,也是您只需要檢索特定帖子的情況。另一方面,WP_QUERY更強大和靈活。它允許更複雜的查詢,並使您對WordPress循環有更多控制權。雖然get_posts更易於使用,但WP_QUERY提供了更高級的功能來自定義查詢。
>如何修改get_posts返回的帖子數?默認情況下,將其設置為5。如果要檢索所有帖子,則可以將“ numberPosts”設置為-1。例如,要獲取10篇文章,您將使用:get_posts(array('numberposts'=> 10));
>我可以使用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 3獲得類別的帖子,您將使用:get_post(array('category'=> 3));
如何使用get_post從多個類別中檢索帖子? >
>要從多個類別檢索帖子,您可以將類別ID數組傳遞到“類別”參數。例如,要獲取具有IDS 3和4的類別的帖子,您將使用:get_posts(array('category'=> array(3,4)));>我可以使用get_posts檢索特定作者的帖子? 是的,您可以使用get_posts檢索特定作者的帖子。您只需要在查詢中指定“作者”參數。例如,要使用ID 1獲取作者的帖子,您將使用:get_posts(array('rution'=> 1)); >我如何檢索使用get_posts包含特定元值的帖子? 要檢索包含特定元值的帖子,您可以使用'meta_key'和'meta_value'參數。例如,要獲取具有“顏色”元密鑰和“藍色”的元值的帖子,您將使用:get_posts(array('meta_key'=>'color','meta_value'=>'blue') ); 我可以使用get_posts檢索具有特定標籤的帖子嗎?您只需要在查詢中指定“標籤”參數。例如,要獲取具有標籤“ wordpress”的帖子,您將使用:get_posts(array('tag'=>'wordpress’)); >如何使用get_posts從特定日期範圍內檢索帖子?
>
從特定日期範圍內檢索帖子,您可以使用'date_query'參數。此參數接受數組數組,每個內部數組都定義一個日期查詢子句。例如,要從2020年1月開始獲取帖子,您將使用:get_posts(array('date_query'=> array(array(array'=> 2020,'noter''=> 1)))));>>>>>
以上是探索WordPress get_posts功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

有四種方法可以調整 WordPress 文章列表:使用主題選項、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代碼(在 functions.php 文件中添加設置)或直接修改 WordPress 數據庫。

博客是人們在網上表達觀點、意見和見解的理想平台。許多新手渴望建立自己的網站,卻因擔心技術障礙或成本問題而猶豫不決。然而,隨著平台不斷發展以滿足初學者的能力和需求,現在開始變得比以往任何時候都更容易。 本文將逐步指導您如何建立一個WordPress博客,從主題選擇到使用插件提升安全性和性能,助您輕鬆創建自己的網站。 選擇博客主題和方向 在購買域名或註冊主機之前,最好先確定您計劃涵蓋的主題。個人網站可以圍繞旅行、烹飪、產品評論、音樂或任何激發您興趣的愛好展開。專注於您真正感興趣的領域可以鼓勵持續寫作

最近,我們向您展示瞭如何通過允許用戶將自己喜歡的帖子保存在個性化庫中來為用戶創建個性化體驗。您可以通過在某些地方(即歡迎屏幕)使用他們的名字,將個性化結果提升到另一個水平。幸運的是,WordPress使獲取登錄用戶的信息變得非常容易。在本文中,我們將向您展示如何檢索與當前登錄用戶相關的信息。我們將利用get_currentuserinfo(); 功能。這可以在主題中的任何地方使用(頁眉、頁腳、側邊欄、頁面模板等)。為了使其工作,用戶必須登錄。因此我們需要使用

您想了解如何在父分類存檔頁面上顯示子分類嗎?在自定義分類存檔頁面時,您可能需要執行此操作,以使其對訪問者更有用。在本文中,我們將向您展示如何在父分類存檔頁面上輕鬆顯示子分類。為什麼在父分類存檔頁面上顯示子分類?通過在父分類存檔頁面上顯示所有子分類,您可以使其不那麼通用,對訪問者更有用。例如,如果您運行一個關於書籍的WordPress博客,並且有一個名為“主題”的分類法,那麼您可以添加“小說”、“非小說”等子分類法,以便您的讀者可以

過去,我們分享過如何使用PostExpirator插件使WordPress中的帖子過期。好吧,在創建活動列表網站時,我們發現這個插件非常有用。我們可以輕鬆刪除過期的活動列表。其次,多虧了這個插件,按帖子過期日期對帖子進行排序也非常容易。在本文中,我們將向您展示如何在WordPress中按帖子過期日期對帖子進行排序。更新了代碼以反映插件中更改自定義字段名稱的更改。感謝Tajim在評論中讓我們知道。在我們的特定項目中,我們將事件作為自定義帖子類型。現在

要使用 WordPress 主機建站,需要:選擇一個可靠的主機提供商。購買一個域名。設置 WordPress 主機帳戶。選擇一個主題。添加頁面和文章。安裝插件。自定義您的網站。發布您的網站。

您是否正在尋找自動化 WordPress 網站和社交媒體帳戶的方法? 通過自動化,您將能夠在 Facebook、Twitter、LinkedIn、Instagram 等平台上自動分享您的 WordPress 博客文章或更新。 在本文中,我們將向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 輕鬆實現 WordPress 和社交媒體的自動化。 為什麼要自動化 WordPress 和社交媒體? 自動化您的WordPre

我們的一位用戶詢問其他網站如何在頁腳中顯示查詢數量和頁面加載時間。您經常會在網站的頁腳中看到這一點,它可能會顯示類似以下內容:“1.248秒內64個查詢”。在本文中,我們將向您展示如何在WordPress中顯示查詢數量和頁面加載時間。只需將以下代碼粘貼到主題文件中您喜歡的任何位置(例如footer.php)。 queriesin
