web-dev-qa-db-fra.com

inclure des éléments d'image dans un widget

J'ai écrit mon premier widget simple WP - tout fonctionne bien, mais j'aimerais l'habiller un peu et ajouter une image/un logo dans le code d'affichage du widget.

Comment conditionner le widget (qui n'est qu'un fichier PHP) avec l'image, et où l'image sera-t-elle stockée dans le site WP (afin de pouvoir créer la balise img lien correctement)?

Je sais que je pourrais facilement héberger l'image à l'extérieur et simplement "hotlink" depuis mon widget, mais cela me semble un peu hackish.

Merci

1
user101289

Il semble que vous ayez besoin de la fonction plugins_url() qui génère l'URL du répertoire des plugins et peut gérer toute autre configuration (par exemple, si vous l'avez déplacée vers le répertoire /mu-plugins/, un de mes favoris personnels). La documentation du Codex est bonne, mais voici un exemple rapide.

  • Disons que vous créez ceci dans un plugin dans /wp-content/plugins/my_awesome_widget/.
  • Pour rendre l’exemple légèrement plus intéressant, vous stockez toutes les images associées dans /wp-content/plugins/my_awesome_widget/assets/images/.
    • Votre image s'appelle company_logo.png.
  • Dans le répertoire du plugin racine se trouve votre fichier plugin principal PHP qui doit référencer le widget.

Donc, pour obtenir l'image, vous utiliseriez un extrait de code comme ceci:

<?php printf(
    '<img src="%1$s" alt="{YOUR COMPANY} logo" />',
    plugins_url( '/assets/images/company_logo.png', __FILE__ )
); ?>

Si tout se passe bien, cela affichera:

<img src="http://example.com/wp-content/plugins/my_awesome_widget/assets/images/company_logo.png" alt="{YOUR COMPANY} logo" />
2
mrwweb

Vous ne pouvez pas distribuer/installer un widget tout seul. Il y a plusieurs façons d'étendre WordPress:

  1. Des thèmes
  2. Plugins
  3. Ou, plus rarement, devez utiliser des plugins

"Widget" n'est pas une fonctionnalité extensible. Il n'y a aucun moyen d'insérer cela directement, donc le code de widget doit être écrit dans un thème ou dans un plugin. Dans votre cas, cela ressemble à ce dernier, alors mettez l'image dans le dossier avec le plugin.

En d'autres termes, vous devez créer un plugin pour charger le widget et vous fournir un emplacement pour placer votre fichier image, ainsi que tous les autres fichiers. vous pourriez avoir besoin.

1
s_ha_dum