搜尋
首頁後端開發php教程WP_Query參數:作者、搜尋、密碼和權限

WP_Query參數:作者、搜尋、密碼和權限

Sep 03, 2023 am 08:41 AM
密碼權限搜尋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 欄位的值作為其參數,該值在使用者管理畫面中顯示為暱稱:

WP_Query參數:作者、搜尋、密碼和權限

請注意,由於使用者可以編輯此內容,因此使用 author 會更安全參數(如果您認為您的使用者可能會變更它)。

您也可以查詢一系列作者的貼文:

$args = array(
    'author__in' => array(
        '1',
        '2'
    )
);

上面將查詢兩位作者的帖子: ID 為 12 的作者,給出的結果與我在 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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP與Python:了解差異PHP與Python:了解差異Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

php:死亡還是簡單地適應?php:死亡還是簡單地適應?Apr 11, 2025 am 12:13 AM

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來:改編和創新PHP的未來:改編和創新Apr 11, 2025 am 12:01 AM

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

您什麼時候使用特質與PHP中的抽像類或接口?您什麼時候使用特質與PHP中的抽像類或接口?Apr 10, 2025 am 09:39 AM

在PHP中,trait適用於需要方法復用但不適合使用繼承的情況。 1)trait允許在類中復用方法,避免多重繼承複雜性。 2)使用trait時需注意方法衝突,可通過insteadof和as關鍵字解決。 3)應避免過度使用trait,保持其單一職責,以優化性能和提高代碼可維護性。

什麼是依賴性注入容器(DIC),為什麼在PHP中使用一個?什麼是依賴性注入容器(DIC),為什麼在PHP中使用一個?Apr 10, 2025 am 09:38 AM

依賴注入容器(DIC)是一種管理和提供對象依賴關係的工具,用於PHP項目中。 DIC的主要好處包括:1.解耦,使組件獨立,代碼易維護和測試;2.靈活性,易替換或修改依賴關係;3.可測試性,方便注入mock對象進行單元測試。

與常規PHP陣列相比,解釋SPL SplfixedArray及其性能特徵。與常規PHP陣列相比,解釋SPL SplfixedArray及其性能特徵。Apr 10, 2025 am 09:37 AM

SplFixedArray在PHP中是一種固定大小的數組,適用於需要高性能和低內存使用量的場景。 1)它在創建時需指定大小,避免動態調整帶來的開銷。 2)基於C語言數組,直接操作內存,訪問速度快。 3)適合大規模數據處理和內存敏感環境,但需謹慎使用,因其大小固定。

PHP如何安全地上載文件?PHP如何安全地上載文件?Apr 10, 2025 am 09:37 AM

PHP通過$\_FILES變量處理文件上傳,確保安全性的方法包括:1.檢查上傳錯誤,2.驗證文件類型和大小,3.防止文件覆蓋,4.移動文件到永久存儲位置。

什麼是無效的合併操作員(??)和無效分配運算符(?? =)?什麼是無效的合併操作員(??)和無效分配運算符(?? =)?Apr 10, 2025 am 09:33 AM

JavaScript中處理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。 1.??返回第一個非null或非undefined的操作數。 2.??=將變量賦值為右操作數的值,但前提是該變量為null或undefined。這些操作符簡化了代碼邏輯,提高了可讀性和性能。

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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

PhpStorm Mac 版本

PhpStorm Mac 版本

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

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。