WP Job Manager如何根据职位类型(work-wanted)调整前台展示逻辑
实现方案
所有代码可直接添加到站点当前主题的functions.php文件中,无需修改WP Job Manager核心文件,避免版本升级后修改被覆盖。
1. 先封装公共判断函数,识别work-wanted类型职位
// 判断当前职位是否为work-wanted类型 function is_work_wanted_job( $post = null ) { $post = get_post( $post ); // 非职位类型直接返回false if ( ! $post || 'job_listing' !== $post->post_type ) { return false; } $job_types = wpjm_get_the_job_types( $post ); if ( empty( $job_types ) ) { return false; } foreach ( $job_types as $job_type ) { // 此处slug可替换为你后台work-wanted职位类型的实际别名 if ( 'work-wanted' === $job_type->slug ) { return true; } } return false; }
2. 隐藏「申请职位」按钮
通过WP Job Manager官方提供的过滤器直接清空申请区域内容,按钮会自动消失:
add_filter( 'job_manager_application_details', 'hide_apply_button_for_work_wanted', 10, 2 ); function hide_apply_button_for_work_wanted( $details, $post ) { if ( is_work_wanted_job( $post ) ) { return []; } return $details; }
如果主题有硬编码的申请按钮,可添加CSS兜底:
.single-job_listing .work-wanted-apply-btn { display: none; }
3. 隐藏简历详情
通过内容过滤器替换简历区域为提示文本:
add_filter( 'the_content', 'hide_resume_for_work_wanted', 20 ); function hide_resume_for_work_wanted( $content ) { if ( is_singular( 'job_listing' ) && is_work_wanted_job() ) { // 可自定义提示文本 $tip = '<p style="padding: 15px; background: #f5f5f5; border-radius: 4px;">简历详情仅对授权雇主开放</p>'; // 如只需隐藏部分简历字段,可在此处做内容匹配替换,无需完全覆盖内容 return $tip; } return $content; }
4. 保留雇主联系功能
将联系候选人的按钮单独挂载到职位详情页的独立钩子,仅对雇主角色可见:
add_action( 'single_job_listing_meta_end', 'show_contact_candidate_btn' ); function show_contact_candidate_btn() { // 权限判断可替换为你站点雇主角色对应的权限值 if ( is_work_wanted_job() && current_user_can( 'edit_job_listings' ) ) { // 此处替换为你实际的联系按钮/表单代码 echo '<button class="contact-btn" style="margin: 10px 0;">联系候选人</button>'; } }
内容的提问来源于stack exchange,提问作者AndrewP
相关产品推荐
相关产品推荐

