如何调整WordPress短代码以显示WPJM雇主注册账户数量?
如何创建短代码统计WPJM招聘网站的注册雇主数量
核心说明
WPJM(WP Job Manager)的雇主默认用户角色是employer,而非你猜测的user_employer。统计用户数量不能用统计文章的wp_count_posts函数,需要用WordPress的WP_User_Query类来查询指定角色的用户。
解决方案一:通用角色统计短代码(适配WPJM雇主)
你找到的代码需要修正中文引号问题(PHP仅支持英文引号),修改后可通用统计任意角色的用户数量,适配WPJM雇主的用法如下:
修正后的代码
// 按角色统计用户数量的短代码函数 function wpb_user_count($atts) { $atts = shortcode_atts( array( 'role' => '' ), $atts ); // 未指定角色时返回0 if( empty($atts['role']) ) { return 0; } $user_query = new WP_User_Query( array( 'role' => $atts['role'] ) ); // 转换为整数确保数据安全 $result = (int) $user_query->get_total(); return $result; } add_shortcode('user_count', 'wpb_user_count');
代码各部分含义
shortcode_atts:设置短代码的默认参数,这里默认role为空WP_User_Query:WordPress官方的用户查询类,用于按角色、元数据等条件筛选用户get_total():获取查询结果的用户总数(int):强制转换为整数,避免非数值返回,提升安全性
使用方法
在文章、页面或小工具中插入短代码:
[user_count role="employer"]
即可显示所有注册雇主的数量。
解决方案二:专门的雇主数量短代码(更简洁)
如果仅需统计雇主数量,无需通用角色统计功能,可以写一个更简洁的专属短代码,类似你原来的职位统计逻辑:
代码实现
// 统计WPJM注册雇主数量的短代码 function wpb_total_employers() { // 调用WP_User_Query查询employer角色的用户 $user_query = new WP_User_Query( array( 'role' => 'employer' ) ); $total = (int) $user_query->get_total(); return $total; } add_shortcode('total_employers', 'wpb_total_employers');
使用方法
直接插入短代码即可:
[total_employers]
进阶:统计已审核通过的雇主
如果你的网站开启了雇主审核功能,需要统计已通过审核的雇主,可以通过筛选用户元数据实现:
代码实现
// 统计WPJM已审核雇主数量的短代码 function wpb_total_approved_employers() { $user_query = new WP_User_Query( array( 'role' => 'employer', 'meta_query' => array( array( 'key' => '_wpjm_employer_approved', 'value' => 'yes', 'compare' => '=' ) ) ) ); $total = (int) $user_query->get_total(); return $total; } add_shortcode('total_approved_employers', 'wpb_total_approved_employers');
使用方法
插入短代码:
[total_approved_employers]
内容的提问来源于stack exchange,提问作者Oskar Hanborg
相关产品推荐
相关产品推荐

