كيف يمكنني استخدام هو_صفحة () داخل البرنامج المساعد?
-
23-12-2019 - |
سؤال
أريد أن يقوم المكون الإضافي الخاص بي بتسجيل برنامج نصي فقط في صفحة معينة.
على سبيل المثال ، داخل ملف البرنامج المساعد الخاص بي أريد أن أكتب شيئا من هذا القبيل:
if (is_page()) {
$pageid_current = get_the_ID();
$page_slug = get_post($pageid_current)->post_name;
if ($page_slug == 'articles'){
wp_register_script('myscript', '/someurl/main.js');
}
}
ولكن أحصل على الخطأ:
تم استدعاء الصفحة بشكل غير صحيح.علامات الاستعلام الشرطي لا تعمل قبل تشغيل الاستعلام.قبل ذلك ، يعودون دائما كاذبة.من فضلك انظر التصحيح في وورد لمزيد من المعلومات.(كانت هذه الرسالة وأضاف في الإصدار 3.1.)
كيف يمكنني, داخل البرنامج المساعد, تسجيل برنامج نصي في صفحة معينة?
المحلول
is_page()
العمل فقط داخل ملفات القالب.
واستخدامه ضمن ملفات البرنامج المساعد ، تحتاج إلى استخدامه مع مزيج من template_redirect
هوك العمل.
هذا هوك العمل ينفذ قبل وورد يحدد أي صفحة قالب لتحميل.
لذا فإن المقتطف التالي سيعمل:
add_action( 'template_redirect', 'plugin_is_page' );
function plugin_is_page() {
if ( is_page( 'articles' ) ) {
wp_register_script( 'my-js-handler', '/someurl/main.js', [], '1.0.0', true );
}
}
نصائح أخرى
يمكنك استخدام is_page()
بعد إعادة توجيه القالب لذلك تحتاج إلى إضافة في هوك مثل هذا :
add_action('template_redirect','your_function');
function your_function(){
if ( is_page('test') ) {
// do you thing.
}
}
يجب عليك تسجيل البرنامج النصي كما لو كنت تريد أن تعمل في كل مكان. يمكنك إزالة تسجيله بعد انتهاء المهمة، مثل هذا:
giveacodicetagpre.