Wordpress插件自定义搜索

时间:2013-03-27 20:11:08

标签: search wordpress-plugin wordpress

我正在尝试修改Wordpress插件。基本上该插件显示职位空缺。该插件具有搜索功能,您可以通过关键字,工作行业和工资进行搜索。功能是:

// SEARCH FUNCTION
function bb_search_jobs($job_keyword=null,$job_industry=null,$job_salary=null) {

    global $wpdb;
    $table_name = $wpdb->prefix;        

    $query      = 'SELECT * FROM ' . $table_name . 'bb_jobs ' 
                . 'WHERE CURDATE() < DATE_ADD(date_time, INTERVAL days_to_advertise DAY) ';

    if($job_keyword != 'null') {
        if(strlen ( $job_keyword ) > 4 ){
            $query .= 'AND MATCH (job_title,job_skills,job_description) AGAINST ("' . esc_sql($job_keyword) . '") ';
        } else {
            $query .= 'AND job_title LIKE "%' . esc_sql($job_keyword) . '%" ';          
        }
    }

    if($job_industry && $job_industry != 'null' ){
        $query .= 'AND job_industry LIKE "%' . esc_sql($job_industry) . '%" ';
    }

    if($job_salary && $job_salary != 'null' ){

        $job_salary = format_salary($job_salary);
        $query .= 'AND salary_from <= "' . esc_sql($job_salary) . '" ';
        $query .= 'AND salary_to >= "' . esc_sql($job_salary) . '" ';
    }

//      var_dump ( $query );

    $myrows = $wpdb->get_results($query);

    return $myrows;

}

此搜索功能有效但我的问题是,如果用户未在“关键字”输入中放置任何内容,则搜索会返回所有结果,无论他们是否选择行业或薪水。 我想修改此功能,以便用户不必添加关键字,如果他们不想,他们可以只搜索特定行业或工资,结果将显示来自该行业或该工资的工作

返回的URL以?job_keyword =&amp; job_industry = null结尾 我注意到如果我在job_keyword =之后手动放置一个'+',那么搜索就可以了。那么,如何修改函数,以便如果客户没有在关键字输入中输入任何内容,则URL显示?job_keyword = +&amp; job_industry = null而不是?job_keyword =&amp; job_industry = null

您可以在http://www.bettondesignwork.co.uk/castlewp/job-search/

上查看该网站以及该插件

一如既往,任何帮助我们都非常感激。谢谢。

2 个答案:

答案 0 :(得分:0)

您有两种选择:

  1. 在将结果提交到您的函数之前,您需要检查一个空字段(example)。我的字段是空的,只需在将其提交给函数之前将其更改为“+”。
  2. 通过JS,在提交表单之前检查表单字段。 example

答案 1 :(得分:0)

感谢您为我查看此函数,但问题在于插件中的其他地方存在错误。我现在已经修复了这个bug,这个函数可以正常工作。