web-dev-qa-db-fra.com

Modifier un thème pour insérer des widgets personnalisés?

Je suis assez nouveau pour WordPress et la thématisation, mais j'ai été un administrateur de serveur ayant une expérience de la programmation.

J'ai téléchargé un thème que je souhaite personnaliser et j'aimerais placer un widget HTML sur la page d'accueil afin de pouvoir facilement brancher du code HTML via la méthode traditionnelle utilisée par les widgets.

Ma première idée était simplement de me connecter à une certaine zone avec JavaScript et d'insérer mes ajouts, mais cela ne semble pas être idéal si je veux apprendre l'écosystème WordPress.

Avec un thème, quel est le meilleur moyen d'ajouter simplement un widget HTML (que je peux éditer quelque part dans le tableau de bord) à la page d'accueil de mon thème personnalisé. La façon dont WordPress est, je crois, il y a plusieurs façons de faire cela mais ne semble pas être une solution logique à long terme.

Merci beaucoup, pouvez fournir plus de détails si nécessaire sur le thème, etc.

Également pour modifier un thème existant, CSS/JS est le meilleur moyen d’installer un plugin de style + script page par page et d’ajouter/modifier à partir de là ou existe-t-il un moyen plus classique de WordPress.

1
Cacoon

Comme demandé, la question est assez large, je vais donc donner une réponse large.

Sauf si le thème d'origine fournit ses propres crochets (ce qui n'est pas exclu, et dans ce cas, vous devrez consulter sa documentation), la meilleure façon de le faire serait de créer un Thème enfant , copiez le modèle correspondant dans le thème enfant et apportez les modifications nécessaires.

Pour ce qui est de créer un widget HTML modifiable dans ce modèle, plusieurs options sont disponibles:

  • Enregistrez une zone de widget en utilisant register_sidebar() dans functions.php et exportez-la dans le modèle avec dynamic_sidebar() . Ensuite, vous pouvez ajouter le code HTML avec un widget HTML personnalisé.
  • Utilisez l’API de personnalisation pour ajouter un champ au personnalisateur afin que le code HTML soit inséré et exporté dans le modèle avec get_theme_mod() .
  • Ajoutez un champ personnalisé pour le code HTML et indiquez-le dans le modèle avec get_post_meta() .

En fin de compte, l’approche exacte dépend essentiellement de la façon dont le thème initial a été construit. Certains thèmes ne fonctionnent pas très bien avec les thèmes enfants. Il est donc possible que vous rencontriez des problèmes lorsque vous tentez d'apporter des modifications de cette façon. D'autres thèmes peuvent également proposer leurs propres hooks ou API pour effectuer de telles modifications. Il est impossible de dire sans voir son code. Je suggère de contacter le développeur du thème original dans un premier temps.

2
Jacob Peattie