J'ai hérité d'un site doté d'une version mobile. Appelons cela qqq.com. Il y a un serveur Varnish devant pour mettre en cache les pages. Mais il semble que le serveur Varnish détecte également les requêtes mobiles et modifie l'URL en m.qqq.com.
L'installation WP passe ensuite au thème qqq-mobile au lieu du thème qqq.
Comment feriez-vous cela? J'essaie de localiser le code qui fait cela pour que je puisse faire la même chose sur mon instance de dev locale.
Merci de votre aide.
Le thème activé est stocké dans la table options
: template
est le thème parent, stylesheet
est le thème enfant. S'il n'y a pas de thème enfant, les deux valeurs seront les mêmes.
Le nom d'hôte actuel (URL sans protocole ni chemin) est disponible dans la variable $_SERVER
.
Vous pouvez ensuite vous connecter aux filtres stylesheet
et template
pour forcer un thème différent.
function use_mobile_theme( $current_theme ) {
// If the domain is m.qqq.com and the current theme is 'qqq'
if ( 'm.qqq.com' === $_SERVER['HTTP_Host'] && 'qqq' === $current_theme ) {
// Use the 'qqq-mobile' theme instead
return 'qqq-mobile';
} else {
// Otherwise, keep the current theme
return $current_theme;
}
}
add_filter( 'stylesheet', 'use_mobile_theme' );
add_filter( 'template', 'use_mobile_theme' );
Si qqq-mobile
est un thème enfant , supprimez la ligne add_filter( 'template', ...
.