搜尋
首頁CMS教程&#&按探索WordPress get_posts功能

探索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()函數是什麼? 探索WordPress get_posts功能 自WordPress 1.2.0以來,WordPress Core已在WordPress Core中使用

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></span>
posts_per_page:此參數定義要返回的帖子數量。如果您想要所有帖子,請使用-1。

> page:允許我們在使用posts_per_page參數時在一組帖子之間導航。它用於分頁。例如:假設posts_per_page是10,結果中有20個帖子,然後如果您分配了第2個,則返回最後10個帖子。
    > Orderby:用於對檢索到的帖子進行排序。一些可能的值是:“無”,“ date”,“ rand”,“ comment_count”,“ meta_value”,“ meta_value_num”等,同時使用“ meta_value”和“ meta_value_num”進行排序時,您需要提供Meta_key參數。
  1. 順序:指定訂單參數的上升或降序。可能的值是“ desc”或“ asc”。
  2. >
  3. 排除:它獲取逗號分隔的帖子ID列表,該列表將在數據庫搜索中排除。
  4. > meta_key和meta_value:如果您僅提供元數據,則將返回具有密鑰的帖子。如果您還提供meta_value,則返回了與meta_key的meta_value匹配的帖子。
  5. >
  6. post_type:根據帖子,頁面或自定義帖子類型檢索內容。請記住,默認的post_type僅設置為顯示帖子,而不設置為頁面。
  7. >
  8. > POST_STATUS:根據帖子狀態檢索帖子。可能的價值是:“發布”,“待處理”,“草稿”,“未來”,“任何”或“垃圾”。
  9. >
  10. > wp_post對象
  11. get_post函數返回包含WP_POST對象的數組。這是WP_POST對象的重要屬性:
    1. ID:帖子的ID
    2. >
    3. > post_author:帖子的作者名稱
    4. post_type:post
    5. 的類型
    6. post_title:帖子的標題
    7. >
    8. > post_date:發布的日期。格式:0000-00-00 00:00:00
    9. post_content:帖子的內容。
    10. post_status:職位的狀態
    11. >
    12. 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></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 id="post-gt-post-title">" . $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>
    在上面的示例中,我們將值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 id="post-gt-post-title">" . $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>
    >在這裡,我們正在檢索“ 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 id="post-gt-post-title">" . $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>
    在此示例中,我們正在檢索屬於“插件”和“主題”自定義分類法的定制帖子類型的帖子。

    結論

    >在本文中,我們看到了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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
WordPress與其他網站構建者相比如何?WordPress與其他網站構建者相比如何?Apr 28, 2025 am 12:04 AM

WordPressExcelSoverotherWeberSiteBuilderSduetoItsflexible,可伸縮性,andopen-sourcenature.1)它'saversatilecmswithExtEnsextEnsexenSiveCustomizedOptionsVIATHEMESANDPLUGINS.2)它的alllearbutoffersbutoffersbutoffersbutoffersbutefersbuterbutfulcontrololoncemastered.3)

5個WordPress插件,供開發人員在2025年使用5個WordPress插件,供開發人員在2025年使用Apr 27, 2025 am 08:25 AM

2025年網站開發的七個必備WordPress插件 在2025年建立頂級WordPress網站需要速度,響應能力和可擴展性。 實現這種有效的實現通常取決於戰略插件的選擇。 這篇文章Highlig

您將使用WordPress做什麼?您將使用WordPress做什麼?Apr 27, 2025 am 12:14 AM

WordPresscanbeusedforvariouspurposesbeyondblogging.1)E-commerce:WithWooCommerce,itcanbecomeafullonlinestore.2)Membershipsites:PluginslikeMemberPressenableexclusivecontentareas.3)Portfoliosites:ThemeslikeAstraallowstunninglayouts.Ensuretomanageplugins

WordPress適合創建投資組合網站嗎?WordPress適合創建投資組合網站嗎?Apr 26, 2025 am 12:05 AM

是的,wordpressisisexcellentforcortingaportfoliowebsite.1)itoffersnumeroversnumeroverportfolio-spificthemeslike'astra'astra'astra'astra'astra'astra'astra'astra'astra'elementor'Enelementor'enableIntiviveSiveSign,Thoughtemanycanslowthesite.3)

使用WordPress而不是從頭開始編碼網站的優點是什麼?使用WordPress而不是從頭開始編碼網站的優點是什麼?Apr 25, 2025 am 12:16 AM

WordPressisadvantageousovercodingawebsitefromscratchdueto:1)easeofuseandfasterdevelopment,2)flexibilityandscalability,3)strongcommunitysupport,4)built-inSEOandmarketingtools,5)cost-effectiveness,and6)regularsecurityupdates.Thesefeaturesallowforquicke

是什麼使WordPress成為內容管理系統?是什麼使WordPress成為內容管理系統?Apr 24, 2025 pm 05:25 PM

WordPressIsAcmsDuetoItseAsofuse,自定義,USERMANAMECTION,SEO和COMMUNITYSUPPORT.1)ITSIMPLIFIESCONTENTMANGAMEWITHANINTUISIDERFEEFFECE.2)提供extentensiveCustomizationThroughThroughTheMesandPlugins.3)supportrobustuserrolesandplugins.4)supportrobustuserrolesandpermissions.4)增強

wordpress怎麼加評論框wordpress怎麼加評論框Apr 20, 2025 pm 12:15 PM

在 WordPress 網站上啟用評論功能,可以為訪客提供參與討論和分享反饋的平台。為此,請按照以下步驟操作:啟用評論:在儀錶盤中,導航至“設置”>“討論”,並選中“允許評論”複選框。創建評論表單:在編輯器中,單擊“添加塊”並蒐索“評論”塊,將其添加到內容中。自定義評論表單:通過設置標題、標籤、佔位符和按鈕文本來定制評論塊。保存更改:單擊“更新”以保存評論框並將其添加到頁面或文章中。

wordpress怎麼複製子站wordpress怎麼複製子站Apr 20, 2025 pm 12:12 PM

如何復制 WordPress 子站?步驟:在主站創建子站。在主站克隆子站。將克隆導入目標位置。更新域名(可選)。分開插件和主題。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 Mac版

SublimeText3 Mac版

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

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!