web-dev-qa-db-ja.com

ウィジェット内の画像アセットを含む

私は最初の簡単なWPウィジェットを書きました - それはすべてうまくいきますが、私はそれを少しドレスアップして、ウィジェット表示コードに画像/ロゴを追加したいです。

ウィジェット(これは単なるPHPファイルです)を画像とどのようにパッケージ化するのですか。また、その画像はWPサイトのどこに保存されるのでしょう(したがってimgタグを作成できます)。正しくリンクしますか?

私は、外部から画像を簡単にホストし、自分のウィジェット内からその画像に「ホットリンク」するだけでよいことを知っていますが、それはちょっとハッキングなようです。

ありがとう

1
user101289

PluginsディレクトリのURLを生成し、別の設定を扱うことができる(=に移動した場合など) plugins_url()関数 が必要になると思われる私のお気に入りの/mu-plugins/ディレクトリ。コーデックスのドキュメントは良いですが、ここで簡単な例です。

  • /wp-content/plugins/my_awesome_widget/のプラグインでこれを作っているとしましょう。
  • 例をもう少し面白くするために、関連するすべての画像を/wp-content/plugins/my_awesome_widget/assets/images/。に格納します。
    • あなたの画像はcompany_logo.pngです。
  • ルートプラグインディレクトリには、ウィジェットを参照する必要のあるメインプラグインPHPファイルがあります。

そのため、画像を取得するには、次のようなスニペットを使用します。

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

すべてうまくいけば、それは印刷されます。

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

ウィジェットを単独で配布/インストールすることはできません。 WordPressを拡張する方法はいくつかあります。

  1. テーマ
  2. プラグイン
  3. あるいは、もっとまれに、プラグインを使わなければならない

「ウィジェット」は拡張可能な機能ではありません。それを直接ドロップする方法はありません。そのため、ウィジェットのコードはテーマまたはプラグインに記述する必要があります。あなたの場合は、後者のように聞こえますので、プラグインのあるフォルダに画像を入れてください。

言い換えれば、ウィジェットをロードするには プラグイン を作成する必要があります。これは他のファイルと同様に画像ファイルを置く場所を提供します。あなたが必要かもしれません。

1
s_ha_dum