أود أن تسبب البرنامج المساعد في تقييد تحميل صفحات أنماط CSS وملفات JavaScript JS على تلك الصفحات التي تحتاجها فقط.
مثال على سؤالي هو المكون الإضافي نموذج الاتصال 7 الذي استخدمته لإنشاء نموذج في صفحة واحدة على موقعي (صفحة " اتصل بي "). ومع ذلك ، تضيف الأسطر التالية إلى كل صفحة/مشاركة على الموقع الإلكتروني:
<link rel='stylesheet' id='contact-form-7-css' href='http://www.r-statistics.com/wp-content/plugins/contact-form-7/styles.css?ver=2.3.1' type='text/css' media='all' />
<script type='text/javascript' src='http://www.r-statistics.com/wp-content/plugins/contact-form-7/scripts.js?ver=2.3.1'></script>
هذا يجعلني أشك في أن هذا المكون الإضافي يضعف من وقت تحميل موقعي ، لإضافة تهمني على صفحة واحدة فقط على الموقع.
وبالتالي ، سؤالي هو كيف يمكنني إزالة هذه الخطوط الإضافية من جميع الصفحات باستثناء صفحة "اتصل بي" ولكن دون إلغاء تنشيط المكون الإضافي؟
يتم دائمًا إعداد الأنماط والبرامج النصية بواسطة الدالتين wp_enqueue_script()
و wp_enqueue_style()
، والتي يجب أن ترتبط بربط عمل معين حتى تعمل. أخذت نظرة خاطفة داخل نموذج الاتصال 7 ، ويبدو أنه يستخدم علامات الإجراء الخاصة بـ wpcf7_enqueue_scripts
و wpcf7_enqueue_styles
لإضافتها إلى الخطافات wp_print_scripts
و wp_print_styles
.
لذا ، ما عليك القيام به هو إلغاء ربط البرامج النصية والأنماط من كل صفحة ولكن صفحة الاتصال الخاصة بك. يتم تشغيل الإجراء wp_head
قبل إجراءات البرنامج النصي والأنماط ، لذلك ستحتاج إلى إضافة شيء مثل هذا إلى ملف وظائف.
function remove_wpcf7_extras() {
remove_action('wp_print_scripts', 'wpcf7_enqueue_scripts');
remove_action('wp_print_styles', 'wpcf7_enqueue_styles');
}
if( ! is_page('contact me') ) {
add_action('wp_head', 'remove_wpcf7_extras');
}
is_page () ظيفة ستُرجع true
عندما تكون في صفحة الاتصال (على افتراض أن الاسم "contact me") ... يمكنك أيضًا استخدام slug الصفحة ومعرف الصفحة للمرشح. في جميع الصفحات الأخرى ، ستضيف if()
الشرطية وظيفة إزالة البرنامج النصي/النمط إلى الإجراء wp_head
، والذي يتم تشغيله قبل إجراءات wp_print_scripts
و wp_print_styles
مباشرة.
سيؤدي هذا إلى إزالة الشفرة الإضافية من صفحاتك ، ولن تضطر إلى إلغاء تنشيط المكون الإضافي أو تحرير أي ملفات أساسية. الوظائف والرمز اللذان ذكرتهما أعلاه لن يتسببا في كسر المظهر الخاص بك إذا قمت بإزالة نموذج الاتصال 7 في المستقبل ، إما ... لذلك لا داعي للقلق بشأن توافق الترقية في المستقبل.