web-dev-qa-db-fra.com

Fonction pour activer le thème WordPress dans un plugin

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?

3
Notorious Etam

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.

3
Krzysiek Dróżdż

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 .

 enter image description here 

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);
1
Castiblanco