أحتاج إلى الحصول على عنوان 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
(أعرف ، أعلم ، الأسماء لا تخبرك بما هي عليه ولكن مهلا ، هذه هي الطريقة نفسها!) الاقتراض إلى حد ما من رد Eric باستخدام 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.
بالمناسبة ، في حال لم تكن معتادًا علىالمظاهر التابعة للطفلحيث توجد إجابات ووردبريس أخرى قد تساعد:
تعتمد بنية السمة بأكملها على أعلى خيارين - 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()
إلى فقط أو تابعة سمة