搜尋
首頁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開發的5個最佳ID(以及原因)WordPress開發的5個最佳ID(以及原因)Mar 03, 2025 am 10:53 AM

我為WordPress開發選擇了正確的綜合開發環境(IDE)十年後,我探索了WordPress開發的眾多集成開發環境(IDE)。 純粹的品種 - 從免費到商業,基本到FEA

使用OOP技術創建WordPress插件使用OOP技術創建WordPress插件Mar 06, 2025 am 10:30 AM

本教程演示了使用面向對象的編程(OOP)原理構建WordPress插件,利用Dribbble API。 讓我們在保留原始含義和結構的同時完善文本以清晰和簡潔。 object-ori

如何將PHP數據和字符串傳遞給WordPress中的JavaScript如何將PHP數據和字符串傳遞給WordPress中的JavaScriptMar 07, 2025 am 09:28 AM

將PHP數據傳遞給JavaScript的最佳實踐:WP_LOCALIZE_SCRIPT和WP_ADD_INLINE_SCRIPT的比較是PHP文件中靜態字符串中數據存儲數據的最佳實踐。 如果在您的JavaScript代碼中需要此數據,請合併

如何使用WordPress插件嵌入和保護PDF文件如何使用WordPress插件嵌入和保護PDF文件Mar 09, 2025 am 11:08 AM

本指南演示瞭如何使用WordPress PDF插件在WordPress帖子和頁面中嵌入和保護PDF文件。 PDFS為從目錄到演示文稿提供了一種用戶友好的,普遍訪問的格式。 此方法ENS

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

記事本++7.3.1

記事本++7.3.1

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

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。