如何自定义Elementor Posts查询 按自定义字段筛选指定机构的WordPress文章
WordPress Elementor Posts小工具自定义字段筛选实现
需求说明
使用WordPress搭建站点时,需要通过Elementor的Posts小工具展示同时满足两类筛选条件的文章:
- 归属指定分类:该筛选可直接通过Posts小工具的内置配置完成
- 匹配指定机构:该筛选基于自定义字段(custom field)实现,Elementor无内置支持,需要通过钩子扩展查询逻辑
实现代码
将以下代码添加到当前使用主题的functions.php文件,或自定义代码管理插件中即可:
add_action( 'elementor/query/institute-query', function( $query ) { $meta_query = $query->get( 'meta_query' ); // 追加自定义元查询规则,避免覆盖Elementor原有配置 if( $meta_query == "" ){ $meta_query = array(); } // 新增机构匹配规则 $meta_query[] = [ 'key' => 'course_institution', 'value' => [ 'University of Pennsylvania', 'university of pennsylvania', 'University-of-Pennsylvania', 'university-of-pennsylvania' ], 'compare' => 'IN', ]; $query->set( 'meta_query', $meta_query ); } );
注:原代码中
compare参数值or为写法错误,WordPress元查询匹配数组值时需使用IN参数,已做修正。
使用方法
代码部署完成后,打开对应Elementor编辑页的Posts小工具设置,在查询配置项中将查询ID设置为institute-query,即可同时触发分类+自定义字段的双重筛选。
内容的提问来源于stack exchange,提问作者Zaeem Javed
相关产品推荐
相关产品推荐

