WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] Not able to search custom post type categories/tags (2 posts)

  1. mikegarlick
    Member
    Posted 1 year ago #

    Hi,

    I have a custom post type names jobs. I have a search for for the post type but it only searches the post title and/or content. How can I get it to get results by also including the post categories and their tags.

  2. mikegarlick
    Member
    Posted 1 year ago #

    After a hell of a lot of searching I manages to find the following code which works perfectly once pasted into the functions.php file.

    function atom_search_where($where){
      global $wpdb;
      if (is_search())
        $where .= "OR (t.name LIKE '%".get_search_query()."%' AND {$wpdb->posts}.post_status = 'publish')";
      return $where;
    }
    
    function atom_search_join($join){
      global $wpdb;
      if (is_search())
        $join .= "LEFT JOIN {$wpdb->term_relationships} tr ON {$wpdb->posts}.ID = tr.object_id INNER JOIN {$wpdb->term_taxonomy} tt ON tt.term_taxonomy_id=tr.term_taxonomy_id INNER JOIN {$wpdb->terms} t ON t.term_id = tt.term_id";
      return $join;
    }
    
    function atom_search_groupby($groupby){
      global $wpdb;
    
      // we need to group on post ID
      $groupby_id = "{$wpdb->posts}.ID";
      if(!is_search() || strpos($groupby, $groupby_id) !== false) return $groupby;
    
      // groupby was empty, use ours
      if(!strlen(trim($groupby))) return $groupby_id;
    
      // wasn't empty, append ours
      return $groupby.", ".$groupby_id;
    }
    
    add_filter('posts_where','atom_search_where');
    add_filter('posts_join', 'atom_search_join');
    add_filter('posts_groupby', 'atom_search_groupby');

Topic Closed

This topic has been closed to new replies.

About this Topic