WP_Query參數:作者、搜尋、密碼和權限
到目前為止,在本系列中,您已經了解了可以與WP_Query
類別一起使用的參數選擇,以按帖子類型、類別、標籤、元資料、日期、狀態等選擇帖子更多。
在關於 WP_Query
參數的最後一個教學中,我將介紹一些不常用的參數,這些參數可以為您的查詢提供更大的靈活性。
我們將在此處介紹的參數用於:
- 作者
- 搜尋
- 密碼
- 權限
- caching
- 返回欄位
在開始之前,讓我們快速回顧一下如何使用 WP_Query
編寫參數。
回顧 WP_Query 中的參數如何運作
#當您在主題或外掛程式中編寫 WP_Query
時,您需要包含四個主要元素:
- 查詢的參數,使用本教學將介紹的參數
- 查詢本身
- 循環
- 結束:關閉 if 和 while 標籤並重置發布資料
實際上,這將類似於以下內容:
<?php $args = array( // Arguments for your query. ); // Custom query. $query = new WP_Query( $args ); // Check that we have query results. if ( $query->have_posts() ) { // Start looping over the query results. while ( $query->have_posts() ) { $query->the_post(); // Contents of the queried post results go here. } } // Restore original post data. wp_reset_postdata(); ?>
這些參數告訴 WordPress 從資料庫中取得哪些數據,我將在此處介紹這些數據。所以我們在這裡關注的是程式碼的第一部分:
$args = array( // Arguments for your query. );
如您所見,參數包含在一個陣列中。在學習本教程時,您將學習如何對它們進行編碼。
寫你的參數
#數組中的參數有一個具體的編碼方式,如下:
$args = array( 'parameter1' => 'value', 'parameter2' => 'value', 'parameter3' => 'value' );
必須將參數及其值括在單引號中,在它們之間使用 =>
,並用逗號分隔它們。如果您犯了這個錯誤,WordPress 可能不會將所有參數新增到查詢中,否則您可能會看到白螢幕。
作者參數
有四個參數可以用來按作者查詢:
-
author
(int):使用作者 ID -
author_name
(字串):使用「user_nicename」(不是名稱) -
author__in
(陣列):使用作者 ID -
author__not_in
(陣列)
第一個 author
允許您透過提供作者 ID 來查詢一個或多個作者的貼文:
$args = array( 'author' => '2' );
上面的程式碼查詢ID為2
的作者的所有貼文。
您也可以使用字串來查詢多個作者的貼文:
$args = array( 'author' => '1, 2' );
如果要按名稱查詢,可以使用 author_name
參數:
$args = array( 'author_name' => 'rachelmccollin' );
此參數採用資料庫中 user_nicename
欄位的值作為其參數,該值在使用者管理畫面中顯示為暱稱:
請注意,由於使用者可以編輯此內容,因此使用 author
會更安全參數(如果您認為您的使用者可能會變更它)。
您也可以查詢一系列作者的貼文:
$args = array( 'author__in' => array( '1', '2' ) );
上面將查詢兩位作者的帖子: ID 為 1
和 2
的作者,給出的結果與我在 author
參數上面。
最後,您可以使用 author__not_in
參數排除一位或多位作者的貼文。下面的參數查詢除作者 1
之外的所有貼文:
$args = array( 'author__not_in' => array( '1' ) );
或您可以排除多個作者:
$args = array( 'author__not_in' => array( '1', '2' ) );
或者,您可以使用 author
參數,並在作者 ID 前面使用減號來排除作者:
$args = array( 'author' => '-2' );
搜尋參數
搜尋的參數只有一個,就是s
。使用它來查詢與搜尋字詞相符的帖子。例如,要查詢包含關鍵字“我最喜歡的食物”的帖子,您可以使用:
$args = array( 's' => 'my favorite food' );
例如,您可能會發現這對於搜尋具有相似關鍵字的相關貼文很有用。
密碼參數
您可以使用兩個密碼參數來查詢有或沒有密碼保護的貼文:
-
has_password
(bool) -
post_password
(字串)
#第一個參數 has_password
允許您查詢有或沒有密碼保護的貼文。因此,請查詢受密碼保護的貼文:
$args = array( 'has_password' => true );
對於沒有密碼的貼文:
$args = array( 'has_password' => false );
您也可以透過密碼本身進行查詢,使用 post_password
參數:
$args = array( 'post_password' => 'mypassword' );
權限參數
權限只有一個參數,perm
,用來查詢目前使用者有權限閱讀的貼文。它採用 'readable'
值,旨在與其他參數結合使用。
因此,要查询受密码保护的帖子并仅在用户具有适当权限时才显示它们,您可以使用以下命令:
$args = array( 'has_password' => true, 'perm' => 'readable' );
或者,如果当前用户有权查看草稿帖子,则可以使用以下命令:
$args = array( 'post_status' => 'draft', 'perm' => 'readable' );
缓存参数
共有三个缓存参数,它们会阻止查询检索到的数据添加到缓存中:
-
cache_results
(boolean):帖子信息缓存 -
update_post_meta_cache
(boolean):发布元信息缓存 -
update_post_term_cache
(boolean):帖子术语信息缓存
这三个选项的默认值都是 true
:如果您希望将数据添加到缓存中,则不需要使用它们。
因此,要显示 product
帖子类型的所有帖子,但不将帖子信息添加到缓存中,您可以使用以下命令:
$args = array( 'post_type' => 'product', 'cache_results' => false );
通常您不应该使用这些参数,因为将发布数据添加到缓存是一个很好的做法。但是,您有时可能希望检索帖子,以便只使用一些帖子数据,在这种情况下,您不需要缓存中的其余帖子数据。例如,当您只想输出带有链接的帖子标题列表时,在这种情况下,您不需要将帖子术语数据或元数据添加到缓存中:
$args = array( 'post_type' => 'product', 'update_post_meta_cache' => false, 'update_post_term_cache' => false );
返回字段参数
您可以使用 fields
参数来指定从查询中返回哪些字段。这可以节省从数据库中的字段返回的数据,而在循环中输出数据时不需要这些数据。
默认情况下是返回所有字段,但是您有两个选项可以使用 fields
参数来限制这一点。首先,'ids'
参数:
$args = array( 'fields' => 'ids' );
这只会返回帖子 ID 数组,不会返回其他字段。如果您想在循环中输出任何内容(例如帖子标题),则必须使用 get_the_title ($post->ID);
等函数来输出标题,这将处理事情的方式很冗长。
您可以使用的另一个参数获取帖子 ID 与子帖子 ID 的关联数组:
$args = array( 'fields' => 'id=>parent' );
您可以使用它根据您的其他参数及其子参数查询帖子。
摘要
WP_Query
系列的这一部分介绍了 WP_Query
类的最终参数集。您可以使用它们按作者、密码保护状态或密码本身和搜索词查询帖子,并设置是否将查询结果添加到缓存以及查询返回哪些字段。
在本系列的下一部分中,您将看到一些在主题或插件中使用 WP_Query
的有效示例。
以上是WP_Query參數:作者、搜尋、密碼和權限的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

當使用Win11系統時,有時會遇到需要輸入管理員使用者名稱和密碼的提示,本文將探討在遇到這種情況時應該如何處理。方法一:1、點選【Windows標誌】,然後按【Shift+重啟】進入安全模式;或這樣進入安全模式:點選開始選單,選擇設定。選擇「更新與安全」;選擇「恢復」中的「立即重新啟動」;重新啟動進入選項後選擇-疑難排解-進階選項-啟動設定—&mdash

可以讓使用者對系統進行更深入的操作和定制,root權限是一種管理員權限,在Android系統中。取得root權限通常需要一系列繁瑣的步驟,對於一般使用者來說可能不太友善、然而。透過一鍵開啟root權限,本文將介紹一種簡單而有效的方法,幫助使用者輕鬆取得系統權限。了解root權限的重要性及風險擁有更大的自由度,root權限可以讓使用者完全控製手機系統。加強安全控制等,客製化主題、使用者可刪除預先安裝應用程式。例如誤刪系統檔案導致系統崩潰,過度使用root權限也有風險、不慎安裝惡意軟體等,然而。在使用root權限前

無線網路已成為人們生活中不可或缺的一部分、在當今數位化的世界中。保護個人無線網路的安全性卻顯得格外重要、然而。設定強密碼是確保你的WiFi網路不會被他人入侵的關鍵。保障你的網路安全,本文將詳細介紹如何使用手機修改路由器WiFi密碼。 1.開啟路由器管理頁面-在手機瀏覽器中開啟路由器管理頁面、透過輸入路由器的預設IP位址。 2.輸入管理員使用者名稱和密碼-以獲得存取權限,在登入頁面中輸入正確的管理員使用者名稱和密碼。 3.導覽至無線設定頁面-尋找並點選進入無線設定頁面,在路由器管理頁面中。 4.找到當前Wi

本文將探討如何解決密碼錯誤的問題,特別是在處理BitLocker警告時需要小心。當在BitLocker中多次輸入錯誤密碼以解鎖磁碟機時,就會觸發這個警告。通常,這個警告出現是因為系統設定了限制錯誤登入嘗試的策略(通常是允許3次登入嘗試)。在這種情況下,使用者會收到相應的警告訊息。完整的警告訊息如下:輸入的密碼不正確,請注意-連續輸入錯誤密碼會導致帳戶被鎖定,這是為了保護您的資料安全。如果需要解鎖帳戶,您將需要使用BitLocker恢復金鑰。密碼不正確,小心BitLocker警告當您登入電腦時收到

無線網路已成為我們生活中不可或缺的一部分、隨著網路的快速發展。為了保護個人資訊和網路安全,定期更改wifi密碼是非常重要的、然而。幫助大家更能保護家庭網路安全,本文將為大家介紹如何利用手機修改wifi密碼的詳細教學。 1.了解wifi密碼的重要性wifi密碼是保護個人資訊和網路安全的道防線,在網路時代、了解其重要性可以更好地理解為什麼需要定期修改密碼。 2.確認手機連接到wifi首先確保手機已連接到要修改密碼的wifi網路上,在修改wifi密碼之前。 3.開啟手機設定選單進入手機的設定選單、在手

在Windows10系統中,密碼原則是一套安全性規則,確保使用者設定的密碼符合一定的強度和複雜性要求,而係統提示您的密碼不符合密碼原則要求則通常意味著您的密碼沒有達到微軟設定的複雜度、長度或字元種類的標準,那麼這種情況要如何避免呢?使用者可以直接的找到本地電腦策略下的密碼策略來進行操作就可以了,下面就一起來看看吧。不符合密碼原則規範的解決方法修改密碼長度:根據密碼原則要求,我們可以嘗試增加密碼的長度,例如將原來的6位密碼改為8位或更長。新增特殊字符:密碼策略通常要求包含特殊字符,如@、#、$等。我

智能為主導的時代,辦公室軟體也普及開來,Wps表格由於它的靈活性被廣大的辦公室人員採用。在工作上要求我們不只是要學會簡單的表格製作和文字輸入,我們要掌握更多的操作技能,才能完成實際工作中的任務,有數據的報表,運用表格更方便更清楚更準確。今天我們帶給大家的課程是:wps表格找不到正在搜尋的資料,為什麼請檢查搜尋選項位置? 1.先選取Excel表格,雙擊開啟。然後在該介面中,選取所有的儲存格。 2、然後在該介面中,點選頂部工具列裡「檔案」裡的「編輯」選項。 3、其次在該介面中,點選頂部工具列裡的“

1.在另一台電腦上下載安裝小白一鍵重裝系統工具,插入空u盤製作u盤啟動盤,具體的教程可以參考:2、把U盤啟動盤插到需要更改密碼的電腦重啟,按啟動熱鍵,一般啟動熱鍵為F12、F8、F9、F10、ESC其中一個。接著出現啟動介面,選擇U盤的選項回車進入。 3.選擇【1】啟動win10x64PE按回車確定。 4.選擇桌面上的密碼修改的工具,雙擊開啟。 5.接著出現帳戶名稱列表,選取需要更改密碼的帳戶開啟。 6.點選下方的修改密碼指令,輸入兩次新的密碼,然後點選OK,儲存變更。 7.最後拔掉U盤,重開機就可以正常
