WP后台文章列表添加自定义字段筛选过滤条件 / WordPress教程 [复制链接]

2465 0
WordPress 文章列表可以按照日期、分类等条件进行筛选,除了这些默认的筛选条件,我们还可以根据需要添加自定义筛选条件。添加自定义筛选条件主要使用到了 restrict_manage_posts 和 parse_query 这两个钩子,在本文中,我们来看一下怎么使用这两个钩子在 WordPress 后台添加一个根据自定义字段进进行筛选的自定义筛选条件。添加后,效果如下图。
© CITYED.CN 版权所有 6 }+ L3 v0 F0 ]" @0 `  ~
© cityed.cn 2 w7 [& d+ B/ ]' _% L8 E6 I. o. S 懒人资源1.jpg # F- T& D" q& [! K& a/ \3 e © 懒人资源
7 q6 b' s6 v, G7 ] © 懒人资源 | CITYED.CN
第一步:添加过滤表单项目: G6 {# q  Z" b# s" U2 a © cityed.cn
第一步,我们需要添加一个下拉表单到 WordPress 后台文章列表。首先我们进行一些必要的判断,然后从 WordPress 数据库中获取筛选数据,最后根据获取到的数据构造一个下拉选择表单项目,具体代码如下,在使用的时候,需要根据实际情况,修改自定义字段或文章类型名称。$ O* g4 l" d7 U
$ ~3 v- `- X  g  g1 F2 v © CITYED.CN 版权所有
将下面代码添加到当前主题函数模板functions.php:
游客,如果您要查看本帖隐藏内容请回复
1 E5 ^' ^* {6 J7 C# o2 U
第二步:添加筛选条件到文章列表查询参数中6 U, D6 h- b& {" t6 w; q © https://www.cityed.cn

© https://www.cityed.cn 0 ^8 k) U; F0 b4 D+ }1 O第一步只是添加了自定义筛选字段表单,我们还需要对操作表单后的情况做一些处理,才能实现根据自定义字段进行筛选的功能。具体来说就是获取表单请求字段,然后获取到的请求字段值加入到显示文章列表的查询参数中。具体实现参考以下代码。
© CITYED.CN 版权所有 1 e" G6 j' T. M2 p. E
  1. add_filter( 'parse_query', 'filter_request_query' , 10);8 W* l; L) A7 { © www.cityed.cn
  2. function filter_request_query($query){& w" @! e( C2 h; D: j © 整站源码 cityed.cn
  3.     // 只修改后台文章列表页面的主查询
    © 懒人资源 | CITYED.CN   r4 d: W5 ~, s7 K
  4.     if( !(is_admin() AND $query->is_main_query()) ){ ) T! ]1 }9 _( N7 R; f2 w2 a © https://cityed.cn
  5.       return $query;
    8 |2 k! l5 X3 d+ g0 e5 W
  6.     }
    © CITYED.CN 版权所有 9 e$ S! N% |" S3 d9 M5 J
  7.     // 如果不是我们需要查询的文章类型,并且设置了自定义查询参数,返回原始查询- {( \$ w, m& c6 @- R © 懒人资源 | cityed.cn
  8.     if( !'my-custom-post' === $query->query['post_type'] or !isset($_REQUEST['my_loc']) ){
    © https://cityed.cn 4 }5 p0 N9 V/ R$ [, p
  9.       return $query;
    © https://cityed.cn 2 Z* b# ]  ^% F8 C: T/ y
  10.     }9 T  b" F/ T3 z; [) r © cityed.cn
  11.     // 如果自定义筛选条件是默认值,返回原始查询
    © https://cityed.cn . t- ]) T% K& k' f$ k2 N
  12.     if(0 == $_REQUEST['my_loc']){
    © CITYED.CN 版权所有 1 U7 m) N( g! H/ ]9 O
  13.       return $query;
    © 懒人资源 | CITYED.CN 6 h( K5 B: f* D+ n+ Y& l
  14.     }
    © cityed.cn + N2 w! s& W4 X# R3 k
  15.    // 修改查询参数
    © 懒人资源 | CITYED.CN 6 r6 l% s6 b* F9 y: R
  16.     $query->query_vars = array(array(8 L' w1 P9 `. ^0 P5 B( h © CITYED.CN 版权所有
  17.       'field' => 'my_custom_field_location',
    © 懒人资源 | cityed.cn & Q- F' p  n1 I0 v
  18.       'value' => $_REQUEST['my_loc'],
    © CITYED.CN 版权所有 . y" {! O$ E1 X
  19.       'compare' => '=',6 O9 h' b. M" k; o5 }0 M+ t- P+ U; @ © CITYED.CN 版权所有
  20.       'type' => 'CHAR'
    © 懒人资源 ) _, Y9 T* L  }4 }% }  q
  21.     ));
    © 懒人资源 " O: L  n2 ^/ i3 x8 y

  22. © cityed.cn 3 r+ x& D$ ?7 w' @5 r, P0 N3 v; ~( S
  23.     // 返回修改后的查询1 W: m- A! [: g2 z+ O* Z © 整站源码 cityed.cn
  24.     return $query;
    © 整站源码 cityed.cn   t' u/ d5 f0 U! ]; y& o
  25.   }
复制代码

© 懒人资源 | cityed.cn 0 e/ p# k. `4 l9 u) _
© 整站源码 cityed.cn 7 I: s) n* J. y- T. m- \完成了上面两步,我们就可以根据自定义字段在 WordPress 后台文章列表中根据自定义字段筛选文章了。除了自定义字段,只要是 WP_Query 类支持的参数,理论上我们都可以用作筛选条件添加到 WordPress 后台文章列表中,比如根据文章作者、根据自定义分类方法,标签等条件进行筛选。$ W; u) M, ]" H4 u+ ~/ S9 } © CITYED.CN 版权所有

© 懒人资源 | CITYED.CN 4 s% O$ V* D( o

懒人资源 | 常见问题解答

关于解压密码错误?
本站资源大多存放于各大网盘,一般不会设置加密。如需解压密码的,一般均会在附件中有专门的说明。若发现解压密码错误,请联系客服进行处理!
关于链接地址失效?
请您及时复制资源链接地址联系我们的客服,客服看到后将第一时间更新链接地址并告知您重新下载,若无法更新的,将安排给您退还相关积分,请谅解!
关于售后及支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供相关的技术支持和售后服务,另行注明的除外。如果确需技术支持的,请联系客服确定服务价格!
关于搭建技术服务?
由于搭建服务比较费时费力,所以本站除另行说明的其他均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
关于资源积分消费?
本站所有资源积分均为本站收集资源的辛苦费,不代表资源本身的价值,软件是高智慧高价值的商品,不可能是白菜价。本站资源售价只是赞助,收取积分仅用于维持本站的日常运营及维护!
关于侵权免责声明?
本站尊重互联网版权体系,本站部分图片、文章大部分转载于互联网、所有内容不代表本站观点、不对文章中的任何观点负责、转载的目的只用于给网民提供信息阅读,无任何商业用途,所有内容版权归原作者所有,如有侵权,请尽快联系客服,核实后我们会立即删除、维护您的权益。非常感谢您的理解。
关于学习安全提示?
提高安全防范意识,共创和谐平安懒人;懒人倡导分享原生资源,资源使用前务必进行病毒查杀及代码安全检查;请勿点击访问源码中的不明链接或扫码不明二维码,以免给您的身心及财产造成损失;以上均属您的个人行为,与懒人资源无关,在此我们深表歉意!!
关于禁止商业提示?
本站所发布的一切资源仅限用于学习和研究目的;不得将资源及内容用于商业或者非法用途,否则,一切后果自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,还请支持正版软件。
您需要登录后才可以回帖 登录 | 中文注册

本版积分规则

WordPress教程

话题: 51 阅读: 7 W+ 互动: 8 W+

© 2020-2026 懒人资源[CITYED.CN] 版权所有 All Rights Reserved. | 联系我们:QQ 1986 406 203 | 电子邮箱:pub@cityed.cn | 技术支持: 懒人资源[CITYED.CN] , 基于Discuz!
快速回复 返回顶部 返回列表
现在加入我们,拥有懒人资源一站式通行证!马上 中文注册 账号登陆