Je crée un plug-in qui génère un thème et je souhaite donc avoir une case à la fin du processus de génération de thème qui donne la possibilité d'activer le thème fraîchement créé sans avoir à le faire manuellement. Y a-t-il une fonction qui peut faire ça?
Bien sûr, il existe une fonction pour cela ( Codex ):
switch_theme( $stylesheet )
Il:
Bascule le thème actuel vers les nouveaux noms de modèles et de feuilles de style. Accepte un argument: $ stylesheet du thème. ($ stylesheet est le nom de votre dossier slug. C'est la même valeur que vous utiliseriez pour un thème enfant, quelque chose comme
twentythirteen
.) Il accepte également une signature de fonction supplémentaire de deux arguments: $ template puis $ stylesheet. Ceci est pour la compatibilité ascendante.
Et pourquoi est-ce mieux? WordPress utilise des filtres et des actions pour beaucoup de choses. Par exemple, lorsque vous changez de thème, les widgets inutilisés sont enregistrés. Vous pouvez ainsi les restaurer dans de nouvelles barres latérales. Tout cela ne sera pas fait si vous changez de thème directement dans la base de données.
La seule chose qui me vienne à l’esprit est de le faire à partir de la base de données. Ainsi, après vérification de l’état de la case à cocher, vous devrez sélectionner la table wp_options
et localiser deux lignes template et stylesheet .
Ensuite, vous devrez mettre à jour alexandria
pour youThemeName
. Cette requête ressemblera à ceci:
$query = "UPDATE wp_options SET option_value='youThemeName' WHERE option_name='template' OR option_name='stylesheet';";
$wpdb->query($query);