WordPress : Action de thème à accrocher pour une seule fonction
Je développe un thème personnalisé. Une fois mon thème activé/installé, je dois exécuter une fonction unique qui définira certaines options. Quelle est la meilleure action à accrocher pour cela ?
Dois-je utiliser after_setup_theme
? Ma compréhension est que cet événement/action se déclenche à chaque chargement de page, donc je ne pense pas que je devrais utiliser cette action correctement ?
*Ps : est-il préférable de placer ce code dans mon fichier functions.php ou ailleurs ? (J’utilise le modèle de thème de soulignement).
Solution n°1 trouvée
peut-être que vous pourriez essayer cette approche pas si propre 🙂
add_action('after_setup_theme','oneTimeStuffUponThemeSwitch');
function oneTimeStuffUponThemeSwitch()
{
if (is_admin())
{
global $pagenow;
if(isset($_GET['activated']) && $pagenow == "themes.php")
{
//your custom code
}
}
}
Oui, vous avez raison, cette action se déclenche à chaque chargement de page, cependant la fonction vérifie si vous activez votre thème, afin que vous n’exécutiez votre custom qu’une seule fois. Oui, vous pouvez le coller dans votre fichier functions.php.
Solution n°2 trouvée
Il n’y a pas d' »activation de thème ». À l’aide du personnalisateur, vous pouvez modifier les paramètres de n’importe quel thème sur le serveur, qu’il soit « actif » ou non, mais dans ce contexte, le thème sera actif et si votre code ne fonctionne pas correctement dans ce contexte, les utilisateurs pourraient être contrariés.
Si vous avez besoin de créer une base de données pour votre thème, stockez simplement une indication de version et utilisez l’un des crochets disponibles pour effectuer la mise à niveau de la base de données lorsqu’il existe une incompatibilité de version entre ce que la version actuelle s’attend à trouver et ce qui s’y trouve réellement. Mais attention, à en juger par votre autre question, vous souhaitez créer des publications frontales, et cela ne doit être fait que lorsque l’utilisateur initie spécifiquement l’action.
0 commentaire