Quelle est la bonne manière pour un thème de prendre en charge les interfaces utilisateur de plug-in?

4

Par exemple, si mon plug-in crée un formulaire sur une page, que puis-je faire pour que les développeurs de thèmes puissent aussi facilement que possible masquer le formulaire?

    
posée Roman 18.01.2012 - 05:32

2 réponses

3

Tout d'abord, fournissez un formulaire HTML par défaut bien formé . Utilisez <label> , <fieldset> et <legend> le cas échéant. Ce balisage fournit une bonne structure pour le style CSS. Ajouter des classes CSS peut aussi aider.

Fournissez un filtre permettant aux développeurs de modifier le formulaire par défaut.

Pour aller encore plus loin, vous pouvez permettre aux développeurs de réécrire complètement la sortie du formulaire comme bon leur semble en leur permettant de fournir un fichier de modèle de formulaire personnalisé dans un thème.

if ($custom_form = locate_template('plugin_form.php')) {
    // Load custom form
    include $custom_form;
} else {
    // Default form with filter
    $form = '<form><!-- Default HTML --></form>';
    $form = apply_filters('pluginprefix_form_output', $form);
    echo $form;
}

Consultez la fonction get_search_form() dans wp-includes/general-template.php pour obtenir un bon exemple d'implémentation similaire.

    
réponse donnée Geert 18.01.2012 - 10:26
3

En général, less is more, c’est-à-dire qu’il n’ya pas de style à part l’ajout de classes standard WP. Si votre plugin doit se fondre, il devrait ressembler au reste.

Cependant, si vous avez des raisons suffisantes de penser que la sortie de votre plugin doit être stylée différemment du reste du site (c'est-à-dire si vous ajoutez une fonctionnalité visuelle distincte), vous pouvez ajouter - en plus des classes standard - vos propres noms de classe aux éléments que vous créez. S'en tenir au moins de classes possible et au plus haut niveau de la hiérarchie, par exemple

<div style="am01_div">
  <ul>
    <li>Test</li>
  </ul>
</div>

est meilleur que

<div style="am01_div">
  <ul style="am01_ul">
    <li style="am01_li">Test</li>
  </ul>
</div>

Ensuite, les utilisateurs peuvent créer un thème enfant de leur thème principal dans le CSS duquel ils peuvent ajouter des informations de style pour vos éléments.

(J'avais l'habitude de penser que les plugins devraient fournir des options pour styler leur sortie, mais j'ai changé d'avis. La séparation des problèmes doit être appliquée ici: vous créez une sortie (raisonnable), style des utilisateurs s'ils le souhaitent.)

    
réponse donnée Raphael 18.01.2012 - 11:15

Lire d'autres questions sur les étiquettes