أقوم بإنشاء سمة مخصصة مع صفحة خيارات السمة.
أرغب في تصميم صفحة الخيارات ولا أريد تضمين أنماط مضمنة. هل هناك أي طريقة لتضمين ورقة أنماط خارجية من القول
TEMPLATEPATH . '/css/admin.css'
لقد وجدت أيضًا جزء الكود هذا ويبدو أنه يعمل - link
function admin_register_head() {
$siteurl = get_option('siteurl');
$url = $siteurl . '/wp-content/plugins/' . basename(dirname(__FILE__)) . '/yourstyle.css';
echo "<link rel='stylesheet' type='text/css' href='$url' />\n";
}
add_action('admin_head', 'admin_register_head');
ما هي أفضل طريقة؟
إذا قمت بإنشاء مكون إضافي لمسؤول النظام من خطوات Codex ، فستلاحظ أنه يشير إلى عدم إدراج أوراق أنماط كما هو مذكور أعلاه - على الرغم من أن ما ورد أعلاه سيعمل.
إذا وضعت ما يلي داخل ملف سمة المشرف الخاص بك ، فسيخدم نفس الغرض ، ولكن يستخدم wp_enqueue_styles approach:
function add_admin_theme_styles() {
wp_register_style($handle = 'mytheme-theme-admin-styles', $src = plugins_url('wp-admin.css', __FILE__), $deps = array(), $ver = '1.0.0', $media = 'all');
wp_enqueue_style('mytheme-theme-admin-styles');}
add_action('admin_print_styles', 'add_admin_theme_styles');
عند تسجيل صفحة لمنطقة المشرف ، باستخدام add_submenu_page
أو أي من وظائف add_{TYPE}_page
الأخرى التي تقبل المعلمة الرابعة معرفًا فريدًا لها ، فإن هذا المعرف يعيّن الخطاف الذي ستستخدمه صفحتك المسجلة ..
إذا كنت سأقوم بتسجيل خيارات على سبيل المثال:
add_options_page( 'Example Plugin Options', 'Example Plugin', 'manage_options', 'example-plugin-identifier', 'example_plugin_options' );
بعد ذلك ، تتوفر روابط متعددة لتلك الصفحة على وجه التحديد ، وإليك بعض الإجراءات الممكنة للصفحة المسجلة الآن.
// load-{HANDLE}
add_action( 'load-example-plugin-identifier', 'example_plugin_callback' );
// admin_head-{HANDLE}
add_action( 'admin_head-example-plugin-identifier', 'example_plugin_callback' );
// admin_print_scripts-{HANDLE}
add_action( 'admin_print_scripts-example-plugin-identifier', 'example_plugin_callback' );
// admin_print_styles-{HANDLE}
add_action( 'admin_print_styles-example-plugin-identifier', 'example_plugin_callback' );
function example_plugin_callback() {
// Run your code here
}
يوجد أيضًا ربط admin_enqueue_scripts
، والذي يوفر اسم المؤشر الحالي في السلسلة/المتغير الذي يمر به إلى وظائف رد الاتصال.
add_action( 'admin_enqueue_scripts', 'example_plugin_callback' );
function example_plugin_callback( $handle ) {
// If the handle is not the page registered earlier, return
if( 'example-plugin-identifier' =! $handle )
return;
// Run your code here
}
يجب ألا تحتاج عادةً إلى استخدام admin_head
أو admin_print_scripts
أو admin_print_styles
إلا إذا كان لديك شرط محدد لاستهداف كل صفحة إدارة أو تنفيذ منطق شرطي داخل رد الاتصال لاستهداف صفحات مسجلة محددة.
امل ان يساعد..
يوفر WP قوائم انتظار للبرامج النصية والأنماط. يسمح بإصدار عناوين URL وتحميل التبعيات تلقائيًا ، إلخ.
راجع wp enqueue style()
في Codex للتعرف على كيفية تسجيل نمطك بشكل صحيح وتحميله فقط حيثما احتجت إليه (في صفحتك المخصصة وليس في كل منطقة المشرف).
نعم ، أنا أجيب على سؤالي الخاص ... لكنني حصلت عليه.
أضف هذا الإجراء إلى ملف theme.php الخاص بالنسق
function admin_register_head() {
$url = get_bloginfo('template_directory') . '/css/admin.css';
echo "<link rel='stylesheet' type='text/css' href='$url' />\n";
}
add_action('admin_head', 'admin_register_head');