0

0

WordPress:使用 Hook 显示待审帖子而非已发布帖子

聖光之護

聖光之護

发布时间:2025-09-19 21:41:01

|

292人浏览过

|

来源于php中文网

原创

wordpress:使用 hook 显示待审帖子而非已发布帖子

本文档旨在指导 WordPress 开发者如何使用 pre_get_posts 钩子修改查询,以便在特定页面上显示待审状态的帖子,而不是默认的已发布帖子。我们将深入探讨如何正确使用该钩子,并提供可行的代码示例,帮助你实现自定义的帖子状态显示需求。

使用 pre_get_posts 钩子修改帖子状态

pre_get_posts 是一个强大的 WordPress 钩子,允许你在 WordPress 执行主查询之前修改查询参数。这对于自定义帖子显示、排序和过滤等操作非常有用。

代码示例

以下代码演示了如何使用 pre_get_posts 钩子来修改指定页面的帖子状态,使其显示待审帖子:

AItools.fyi
AItools.fyi

找到让生活变得更轻松的最佳AI工具!

下载
function custom_pre_get_posts( $query ) {
    // 仅在前端且不是后台管理页面时执行
    if ( ! is_admin() && $query->is_main_query() ) {

        // 检查当前页面是否为目标页面,并验证用户权限
        if( get_query_var('pagename') == 'name_of_the_page' && current_user_can('publish_posts') ) {
            // 修改帖子状态为 'pending'
            $query->set( 'post_status', 'pending' );
        }
    }
}
add_action( 'pre_get_posts', 'custom_pre_get_posts' );

代码解释:

  1. custom_pre_get_posts( $query ) 函数: 这是我们的钩子函数,它接收 $query 对象作为参数。$query 对象包含了当前查询的所有参数。
  2. ! is_admin() && $query->is_main_query() 条件: 这个条件确保我们的代码只在前端页面且是主查询时执行。is_admin() 函数检查当前是否为后台管理页面,$query->is_main_query() 检查当前是否为主查询。避免在后台或非主查询中意外修改查询。
  3. get_query_var('pagename') == 'name_of_the_page' && current_user_can('publish_posts') 条件: 这个条件用于判断当前页面是否为目标页面(name_of_the_page 需要替换成你实际的页面名称),并且当前用户是否具有 publish_posts 权限。只有当两个条件都满足时,才会修改帖子状态。
  4. $query->set( 'post_status', 'pending' ): 这行代码使用 $query 对象的 set() 方法来修改 post_status 参数,将其设置为 pending,即待审状态。
  5. add_action( 'pre_get_posts', 'custom_pre_get_posts' ): 这行代码将我们的 custom_pre_get_posts 函数挂载到 pre_get_posts 钩子上,以便在 WordPress 执行查询之前执行我们的函数。

注意事项

  • 替换 name_of_the_page: 务必将代码中的 name_of_the_page 替换成你想要显示待审帖子的实际页面名称。
  • 用户权限验证: current_user_can('publish_posts') 用于验证用户是否具有发布帖子的权限。你可以根据实际需求修改权限验证的条件。
  • 避免影响其他查询: ! is_admin() && $query->is_main_query() 这个条件非常重要,它可以避免你的代码影响到后台管理页面或其他非主查询,确保只有目标页面才会显示待审帖子。
  • 调试技巧: 如果代码没有生效,可以使用 var_dump($query) 或 print_r($query) 在代码中打印 $query 对象,查看查询参数是否正确修改。

总结

通过使用 pre_get_posts 钩子,我们可以灵活地修改 WordPress 的查询参数,实现自定义的帖子显示需求。在修改查询参数时,务必注意添加适当的条件判断,避免影响到其他页面或功能。希望本文档能够帮助你成功地在 WordPress 中显示待审帖子。

相关专题

更多
wordpress seo
wordpress seo

WordPress网站SEO优化方法有:1、选择一个SEO友好的主题,具有清晰的代码结构,快速的加载速度和响应式设计;2、使用SEO插件,优化你的标题标签,元描述,关键字,XML站点地图等;3、优化你的内容,内容是SEO优化的核心;4、优化你的网站速度;5、创建友好的URL;6、使用内部链接;7、优化图像;8、使用社交媒体;9、定期更新你的网站;10、监控和分析你的网站等等。

415

2023.09.18

wordpress下载后怎么安装
wordpress下载后怎么安装

安装前准备:确保服务器满足要求、获取安装文件、创建数据库。上传 wordpress 文件。创建数据库和用户。运行安装程序:选择语言、输入数据库信息、网站标题和管理员信息。安装 wordpress。安装后配置:设置永久链接、安装主题、安装插件、创建内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

315

2024.04.15

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

17

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

91

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

124

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

14

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

59

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 9.3万人学习

CSS3 教程
CSS3 教程

共18课时 | 4.8万人学习

Vue 教程
Vue 教程

共42课时 | 7.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号