修改WP Job Manager:将职位类型复选框改为多选下拉字段
实现WP Job Manager职位类型多选下拉字段(替换默认复选框)
完全可以通过复制分类字段的代码,替换职位类型相关的核心元素来实现需求。以下是修改后的代码,对应职位类型的多选下拉逻辑:
<?php if ( $types ) : ?> <?php foreach ( $types as $type ) : ?> <input type="hidden" name="search_job_types[]" value="<?php echo esc_attr( sanitize_title( $type ) ); ?>" /> <?php endforeach; ?> <?php elseif ( $show_types && ! is_tax( \WP_Job_Manager_Post_Types::TAX_LISTING_TYPE ) && get_terms( [ 'taxonomy' => \WP_Job_Manager_Post_Types::TAX_LISTING_TYPE ] ) ) : ?> <div class="search_job_types"> <label for="search_job_types"><?php esc_html_e( '职位类型', 'wp-job-manager' ); ?></label> <?php if ( $show_type_multiselect ) : ?> <?php job_manager_dropdown_categories( [ 'taxonomy' => \WP_Job_Manager_Post_Types::TAX_LISTING_TYPE, 'hierarchical' => 1, 'name' => 'search_job_types', 'orderby' => 'name', 'selected' => $selected_type, 'hide_empty' => true ] ); ?> <?php else : ?> <?php job_manager_dropdown_categories( [ 'taxonomy' => \WP_Job_Manager_Post_Types::TAX_LISTING_TYPE, 'hierarchical' => 1, 'show_option_all' => __( '任意职位类型', 'wp-job-manager' ), 'name' => 'search_job_types', 'orderby' => 'name', 'selected' => $selected_type, 'multiple' => false, 'hide_empty' => true ] ); ?> <?php endif; ?> </div> <?php endif; ?>
关键替换说明:
- 分类法标识替换:将分类对应的
\WP_Job_Manager_Post_Types::TAX_LISTING_CATEGORY替换为职位类型的\WP_Job_Manager_Post_Types::TAX_LISTING_TYPE(如果你的版本没有这个常量,直接写'job_listing_type'也可) - 变量名统一替换:把和分类相关的
$categories、$show_categories、$selected_category换成职位类型对应的$types、$show_types、$selected_type - 表单字段命名:将
search_categories相关的name属性、label的for属性、容器类名改为search_job_types,保证表单数据能被WP Job Manager正确识别 - 文本翻译调整:把分类相关的提示文本替换为职位类型对应的中文文案
额外注意事项:
- 确保你在WP Job Manager的设置中已经启用了职位类型的筛选功能
- 建议通过子主题的
job_filters.php模板文件修改,避免直接修改插件核心文件导致更新丢失
内容的提问来源于stack exchange,提问作者user3087516
相关产品推荐
相关产品推荐

