Edit the output of a filter

时间:2020-12-31 作者:michael74

我试图在插件WPJobManager中编辑过滤器的输出(如下)。我想确保$job\\u slug在更新之前没有重复的company\\u name值。目前,设置为在slug中添加company\\u名称,但如果您编辑同一帖子,它会再次添加company\\u名称!

if ( apply_filters( \'submit_job_form_prefix_post_name_with_company\', true ) && ! empty( $values[\'company\'][\'company_name\'] ) ) {
        $job_slug[] = $values[\'company\'][\'company_name\'];
}
我想我需要在我的函数中添加一个过滤器。php,但我不知道如何使用IF语句来删除重复项。我在想下面这样的事?有人能给我指出正确的方向吗?

if ( strpos( $job_slug, sanitize_title($values[\'company\'][\'company_name\'];) ) ) {
            return;
        }

1 个回复
SO网友:Ejaz UL Haq

我已经创建了以下解决方案,当您保持活动主题功能时,它会起作用。php

Refrence
Page: 包括\\表单\\类wp作业管理器表单提交作业。php
Line: 791

add_filter(\'submit_job_form_save_job_data\', \'remove_dublicated_post_name\', 10, 5);

function remove_dublicated_post_name($job_data, $post_title, $post_content, $status, $values){
 if( ! strpos( $job_data[\'post_name\'] , sanitize_title($values[\'company\'][\'company_name\'] ) ){
    // to remove dublicate company names
    $post_name_raw_arr = explode("-",$job_data[\'post_name\']);
    $post_name_unique_arr = array_unique($post_name_raw_arr );
    $job_data[\'post_name\'] = sanitize_title( implode( \'-\', $post_name_unique_arr ) );
  }
return $job_data;
}

相关推荐

Search with filters

我想在搜索表单中创建三个过滤器,其中包括三个不同的过滤器(标签、类别和帖子)。是否可以创建这些过滤器?如果可能的话,意味着我如何创建它?基本上,我不擅长PHP。所以,请帮我解决这个问题。谢谢