get('itstudio_archive_extend_search')) { return false; } $keyword = trim((string) $query->get('itstudio_archive_keyword')); return $keyword !== ''; } function itstudio_archive_extended_search_join($join, $query) { if (!itstudio_archive_extended_search_enabled($query)) { return $join; } global $wpdb; if (strpos($join, $wpdb->users) !== false) { return $join; } return $join . " LEFT JOIN {$wpdb->users} ON ({$wpdb->posts}.post_author = {$wpdb->users}.ID) "; } add_filter('posts_join', 'itstudio_archive_extended_search_join', 10, 2); function itstudio_archive_extended_search_where($where, $query) { if (!itstudio_archive_extended_search_enabled($query)) { return $where; } global $wpdb; $keyword = trim((string) $query->get('itstudio_archive_keyword')); $like = '%' . $wpdb->esc_like($keyword) . '%'; $search_sql = $wpdb->prepare( " AND ( {$wpdb->posts}.post_title LIKE %s OR {$wpdb->posts}.post_excerpt LIKE %s OR {$wpdb->posts}.post_content LIKE %s OR {$wpdb->users}.display_name LIKE %s OR {$wpdb->users}.user_login LIKE %s OR {$wpdb->users}.user_nicename LIKE %s )", $like, $like, $like, $like, $like, $like ); return $where . $search_sql; } add_filter('posts_where', 'itstudio_archive_extended_search_where', 10, 2);