web-dev-qa-db-fra.com

Gestion plus souple des barres latérales et des widgets

J'aimerais avoir un plugin pour une gestion flexible des barres latérales/widgets. En fait, je veux donner à un utilisateur la possibilité de choisir quelle barre latérale devrait être affichée par page/post.

Je sais qu'il existe de nombreux plugins latéraux. Malheureusement, je n’en ai trouvé aucun qui réponde à tous mes souhaits. Je voudrais donc coder cela moi-même. Laquelle des possibilités suivantes trouvez-vous la meilleure et la plus flexible? Ou avez-vous d'autres approches?

Les possibilités

  1. Codez en dur les appels de register_sidebar dans un fichier plugin/functions.php et ajoutez une metabox pour les écrans post_edit.php, post_new.php.

    • Pas si flexible. Si un utilisateur a 100 pages et que chaque page doit avoir une barre latérale différente, l'utilisateur doit enregistrer les barres latérales supplémentaires manuellement.
  2. Identique à N ° 1, mais utilisez un modèle de barre latérale générique avec des balises conditionnelles pour afficher les widgets. Nous pourrions également utiliser le plugin Widget Logic pour un filtrage plus granulaire dans le backend.

    • Bon pour un programmeur ou un utilisateur expérimenté de WordPress, mais pas pour un utilisateur normal. Les étiquettes conditionnelles doivent être mappées de manière conviviale. De plus, is_page(id) pourrait créer des problèmes sur les sites multilingues, où les publications d’une autre langue sont stockées avec un autre identifiant.
  3. A barres latérales flexibles Type de publication personnalisé. Chaque publication de ce CPT est utilisée dans un modèle générique de barre latérale pour afficher le contenu donné. La barre latérale est également sélectionnée dans une métabox personnalisée. L'utilisateur peut ajouter du contenu à la barre latérale avec l'éditeur WYSIWYG par défaut, ce qui est un avantage considérable.

    • Pas un "vrai" sidebar. Par conséquent, les widgets ne peuvent plus être ajoutés sur la sous-page widgets du panneau d'administration. Nous devons créer une propre metabox pour les assignations de widgets.
  4. Modifiez la sous-page de widgets dans le panneau d’administration pour créer/enregistrer vos propres barres latérales dans WordPress. Créez également un widget générique avec un éditeur WYSIWYG par défaut. Le contenu avec des pièces jointes pourrait facilement être ajouté au widget et transféré dans la nouvelle barre latérale créée. L'utilisateur peut ensuite choisir cette barre latérale avec un champ déroulant dans une métabox personnalisée dans les écrans d'administration de page/page. Pour afficher la barre latérale, nous avons également besoin d'un gabarit générique.

Conclusion

De mon point de vue, le n ° 4 devrait faire l'affaire. Y a-t-il d'autres possibilités? Ou cela existe-t-il déjà dans un plugin?

Merci pour votre réponse

2
rofflox

Il y a une extension appelée "Widget Logic". Il ajoute un champ à chaque widget de la barre latérale de la section admin où vous pouvez ajouter un morceau de code php que vous pouvez utiliser pour archiver ce dont vous avez le plus besoin.

C'est un peu lourd mais ça marche. Par exemple, vous mentionnez que pour un site multilingue, vous pouvez toujours utiliser "is_page" puisque vous pouvez également passer un tableau pour la fonction, comme ceci: is_page (tableau (94,71,3)) .. Avec des opérateurs logiques (et/ou/pas/xor) combiné avec vous pouvez archiver n'importe quelle combinaison.

1
rasjani