BuddyPress Global Search autosuggest werkt niet

5 januari 2018 om 18:04
Buddyboss Global Search instellingen pagina.

Buddyboss Global Search instellingen pagina.

Probleem:
Voor een WordPress website maak ik gebruik van BuddyPress in combinatie met de zoek plugin BuddyPress Global Search. Deze plugin biedt de mogelijkheid om in de wp-admin omgeving te bepalen waarop gezocht kan worden aan de voorkant van de website.

Een van de mooie functionaliteiten is de autosuggest functie die onder het zoekformulier wordt getoond wanneer zoektermen worden ingevuld. Je krijgt dan een lijst te zien van berichten, pagina’s en leden die voldoen aan de zoektermen. Deze functionaliteit werkte niet voor mijn website die gebruik maakte van het Quest thema.

Oplossing:
Als je het bestand buddypress-global-search/assets/js/buddypress-global-search.js opent zie je dat er op regel 6 een aantal formulier rollen en klassen worden gedefinieerd. Dit zijn de formulieren waar autosuggest voor ingeschakeld wordt. Het Quest thema hanteert een eigen searchform.php template met daarin een eigen zoekformulier. Dit zoekformulier gebruikt de class met de naam “search”. In de huidige versie van de plugin komt deze naam niet voor op regel 6.

De oplossing is om de searchform.php template aan te passen zodat deze een naam heeft die voorkomt op regel 6 van het buddypress-global-search.js. Aanpassen van een plugin mag je namelijk nooit doen aangezien er in de toekomst updates zijn die jouw aanpassing ongedaan maken. De template pas je natuurlijk aan in je child theme en niet het parent thema. Want net als voor plugins kunnen er ook updates voor het thema uitkomen.

Voor het Quest thema heb ik “search-form” als extra class toegevoegd. Ik laat de originele class staan omdat hier mogelijk nog JS of CSS code van het Quest thema aan gekoppeld is. Werkt autosuggest nou nog niet vergeet dan niet om bijvoorbeeld Autoptimize of WP Super cache te legen.

Oplossing getest op:
WordPress 4.9.1, BuddyPress, Buddyboss Global Search 1.1.8 in combinatie met Quest thema