PHPでテーマURLを取得するにはどうすればよいですか?
-
16-10-2019 - |
質問
テーマディレクトリのURLを取得して、テーマの画像/ヘッダーディレクトリの画像を参照する必要があります。これはPHPでどのように行われますか?
解決
この関数はそうなります 戻る テーマディレクトリURLを使用して、他の関数で使用できます。
get_bloginfo('template_directory');
あるいは、この関数はそうします エコー ブラウザへのテーマディレクトリURL:
bloginfo('template_directory');
テーマの画像の例です images/headers
フォルダーは次のとおりです。
<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />
他のヒント
何 @eamann 警告で言った。エリックは一般的なアプローチと機能がどのように機能するかについて正しいです bloginfo()
と get_bloginfo()
作業とパラメーターを渡す方法について 'template_directory'
(ほとんどの)テーマに必要な値を取得するには。
しかし、注意があります 警告 新しいものと一緒です 子供のテーマ. 。子供のテーマを使用している場合 'template_directory'
あなたが実際に親テーマディレクトリにある画像を参照しようとしていない限り、あなたが望むものではないでしょう。代わりに、子どものテーマの場合、おそらくあなたが望むのは合格することです stylesheet_directory
(私は知っています、私は知っています、私は知っています、名前はあなたに彼らが何であるかを教えていませんが、ちょっと、それはまさにそうです!) stylesheet_directory
このように見えます(例を短くして、ラップしないようにします):
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/header.jpg" />
ポイントを説明するために、私はクイックスタンドアロンファイルを書きましたあなたはあなたのウェブサイトのルートに次のようにドロップすることができます 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の回答はどこにありますか:
テーマの構造全体が2つのオプションの上に構築されます - template
(親のテーマフォルダーnamreを保持) stylesheet
(子テーマフォルダーNAMRを保持)。使用されている子供のテーマがない場合、これらは同じです。
直接アクセスオプションではなく、フィルターの柔軟性を持つために、それに応じて get_template()
と get_stylesheet()
.
不足しているのは、それらをテーマフォルダーの場所と組み合わせることです。これはで実行できます get_theme_root_uri()
そして再び便利に包まれました get_template_directory_uri()
と get_stylesheet_directory_uri()
.
[get_]bloginfo()
と template_directory
また stylesheet_directory
議論は単にこれらを包み込むだけであり、そのようにそれを使用する理由はほとんどありません。ディレクトリ(一般的にローカルパスに関連する)と言う議論を持っていることによってのみ混乱していると思いますが、URLを返します。
SUMARY:
- 使用する
get_template_directory_uri()
参照してください または親のみ テーマ - 使用する
get_stylesheet_directory_uri()
に 唯一または子供 テーマ
私はこれを使用します(dirname(get_bloginfo('stylesheet_url')))