Gebruikers van de “W3 Total Cache” plugin weten dat je per “User Agent Groups”, ook wel browser groepen, verschillende pagina caches kunt hanteren. Dit is erg handig voor als je WordPress website voor mobiele apparaten anders is opgebouwd dan voor desktop browsers. Met de wp_is_mobile() functie kun je dan eenvoudig je WordPress thema aanpassen voor mobiele appareten.
We liepen echter tegen problemen dat de wp_is_mobile() functie check niet overeenkwam met de standaard W3 Total Cache “User Agent Groups”. Hierdoor werd soms op desktop browsers toch de mobiele versie van de website weergegeven. Daarom zijn we opzoek gegaan naar een manier om de W3 Total Cache check te gebruiken.
Na het doorzoeken van de W3 Total Cache code kwamen uit op de volgende classes en functies:
- http://plugins.trac.wordpress.org/browser/w3-total-cache/tags/0.9.2.8/lib/W3/Mobile.php
- http://plugins.trac.wordpress.org/browser/w3-total-cache/tags/0.9.2.8/lib/W3/CacheCase.php#L26
Aan de hand hiervan hebben we de volgende help functie kunnen schrijven:
if ( ! function_exists( 'is_mobile' ) ) { function is_mobile() { $is_mobile = false; if ( class_exists( 'W3_Mobile' ) ) { $w3_mobile = new W3_Mobile(); $group = $w3_mobile->get_group(); $is_mobile = $group !== false; } return $is_mobile; } }