テーマのimage / headersディレクトリ内の画像を参照するには、テーマディレクトリのURLを取得する必要があります。これはPHPでどのように行われますか?
テーマのimage / headersディレクトリ内の画像を参照するには、テーマディレクトリのURLを取得する必要があります。これはPHPでどのように行われますか?
回答:
この関数はテーマディレクトリのURL を返すため、他の関数で使用できます。
get_bloginfo('template_directory');
または、この関数はテーマディレクトリのURLをブラウザにエコーします。
bloginfo('template_directory');
したがって、themes images/headers
フォルダー内の画像の例は次のようになります。
<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />
get_template_directory_uri()
何@EAMann注意点と、言いました。エリックは、一般的なアプローチ、機能bloginfo()
とget_bloginfo()
動作の方法、および'template_directory'
(ほとんどの)テーマに必要な値を取得するためにパラメーターを渡す方法について正しいです。
ただし、警告があり、その警告は新しい子テーマにあります。子テーマを使用している場合'template_directory'
は、親テーマディレクトリにある画像を実際に参照しようとしていない限り、おそらく望みのものではありません。代わりに、子テーマのために何をあなたはおそらくしたいことは渡すことですstylesheet_directory
(私は名前は彼らが何であるかを教えてくれませんが、ちょっと、それはそれがあるだけの方法ですが、私が知っている、知っている!)を使用して、エリックの回答からやや借りてstylesheet_directory
(このようになります。例が短くなるように短縮しました):
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/header.jpg" />
簡単なスタンドアロンファイルを書いた点を説明するために、Webサイトのルートとしてドロップしtest.php
、実行して出力を確認できます。最初にTwentyTenなどの通常のテーマで実行し、次に子テーマで実行します。
<?php
/*
* test.php - Test the difference between Regular and Child Themes
*
*/
include "wp-load.php";
$bloginfo_params = array(
'admin_email',
'atom_url',
'charset',
'comments_atom_url',
'comments_rss2_url',
'description',
'home',
'html_type',
'language',
'name',
'pingback_url',
'rdf_url',
'rss2_url',
'rss_url',
'siteurl',
'stylesheet_directory',
'stylesheet_url',
'template_directory',
'template_url',
'text_direction',
'url',
'version',
'wpurl',
);
echo '<table border="1">';
foreach($bloginfo_params as $param) {
$info = get_bloginfo($param);
echo "<tr><th>{$param}:</th><td>{$info}</td></tr>";
}
echo '</table>';
あなたは、物事に気付いた場合、あなたはより多くのあなたに渡すことができるものとがあることに気づくかもしれないbloginfo()
とはget_bloginfo()
。アイデアについては、以下のコードとスクリーンショットをご覧ください。
スクリーンショットを見ると、通常のテーマstylesheet_directory
と同じものが返されます'template_directory'
が、値は異なり、おそらく子テーマに必要な値が返されることがわかります 。
(ソース:mikeschinkel.com)
このスクリーンショットをわかりやすくするため
wp30.dev
に、ローカルコンピューターでのみ実行されるドメインを示します。現在はWordPress 3.0.1のインスタンスであり、ラップトップの127.0.0.1
(と同じlocalhost
)で構成されており、このようなアドホックな例をテストするために使用しています。VirtualHostXをMac OS Xの便宜のために使用して、プライベートなルーティング不可能な.dev
ドメインをセットアップしましたが、コンピューターのホストファイルと?httpd.confファイル。
ちなみに、チャイルドテーマに慣れていない場合は、他に役立つ2つのWordPressアンサーがあります。
get_stylesheet_directory_uri()
。私は普通のオールを使うべきget_stylesheet_directory()
ですか?
テーマの構造全体は、template
(親テーマフォルダーnamreをstylesheet
保持する)と(子テーマフォルダーnamrを保持する)の2つのオプションの上に構築されます。使用される子テーマがない場合、これらは同じです。
オプションに直接アクセスするのではなく、フィルターに柔軟性を持たせるために、それに応じてget_template()
およびがありget_stylesheet()
ます。
唯一欠けているのは、これらをテーマフォルダーの場所と組み合わせることです。これはで行うことができますget_theme_root_uri()
し、再び便利に包まれたget_template_directory_uri()
とget_stylesheet_directory_uri()
。
[get_]bloginfo()
とtemplate_directory
やstylesheet_directory
引数は単にこれらをラップし、そのようにそれを使用する理由はほとんどありません。ディレクトリ(一般的にはローカルパスに関連する)を引数に持つが、URLを返すことで混乱するだけだと思います。
要約:
get_template_directory_uri()
を参照するために使用get_stylesheet_directory_uri()
にのみまたは子テーマ