تنظيف قسم رأس موضوع WordPress وملفات JS و CSS غير الضرورية

نشرت: 2018-09-04

إعلانات WordPress الأساسية تحتوي على الكثير من التعليمات البرمجية في قسم head HTML بالموقع سواء كنت تريد ذلك أم لا. هذا الرمز بعيد عن أن يكون عديم الفائدة ويخدم غرضًا في معظم المواقع. ومع ذلك ، إذا كنت مهووسًا برمز نظيف أو تستخدم WordPress لتشغيل SaaS ، فستحتاج إلى تنظيف HTML. كما هو الحال مع معظم الأشياء في WP ، فإن الأمر يتعلق فقط بإزالة بعض الإجراءات والفلاتر.

#WordPress هي منصة رائعة لبناء مواقع #SaaS. ولكن قبل القيام بذلك يتطلب الأمر القليل من التنظيف.

انقر على تويتر

لماذا أزيل هذه العلامات من ملفات HEAD أو CSS أو JS؟

هناك عدة أسباب. يحب بعض الأشخاص الاحتفاظ برموزهم ومواقعهم مرتبة قدر الإمكان. لماذا يكون لديك سطر من التعليمات البرمجية في HTML إذا كنت تعلم أنك لست بحاجة إليه وتعرف كيفية إزالته. لا يوجد سبب على الإطلاق. الشيء نفسه ينطبق على ملفات CSS و JS الإضافية. إذا كنت لا تستخدم الرموز التعبيرية على موقعك ، فلماذا تقوم بتضمين JS في كل صفحة؟

ثم هناك الأمن. هناك بعض أجزاء HTML التي يضيفها WordPress تلقائيًا والتي تعرض عناوين URL التي تم استغلالها في الماضي. يجب أن أؤكد أن عناوين URL هذه (نقطة نهاية XML RPC على وجه الخصوص) ليست سرًا. يجب أن تكون عامة. لكن تغييرها إلى عادة وإخفائها هو ممارسة معروفة. في هذه الحالة ، من الواضح أنك لا تريد عناوين URL هذه في HTML الخاص بك.

تعد السرعة أيضًا سببًا وجيهًا لتنظيف HTML. على الرغم من أنني يجب أن أقول إنني لست متأكدًا من المبلغ الذي ستكسبه من خلال إزالة بضع مئات من الأحرف من HTML ، إلا أنها خطوة في الاتجاهات الصحيحة. سيؤدي التخلص من ملفات JS و CSS غير الضرورية إلى توفير بعض طلبات HTTP ، وهذا شيء يجب أن تركز عليه في التحسين. اختبرت Tidy Repo مؤخرًا أكثر من 100 سمة WordPress للسرعة ، ويؤثر عدد الطلبات بشكل كبير على سرعة الموقع الإجمالية.

يضمن لك وجود كود HTML نظيف معرفة ما يجري على موقعك ويمثل بداية رائعة لتحسين سرعة الموقع.

أخيرًا وليس آخرًا ، السبب وسبب وجود هذا الرمز في متناول اليد هي SaaSes التي تعمل بنظام WordPress. عندما تقوم بإنشاء SaaS ، فأنت تريد التحكم الكامل في ما هو موجود في HTML الخاص بك ، ومعظم الأشياء التي يضيفها WP إلى HTML في حد ذاته ليست شيئًا ستستخدمه. لذلك ، من أجل جميع الأسباب المذكورة أعلاه - نقوم بتنظيف الأشياء قدر الإمكان. يمنحنا ذلك نظامًا أساسيًا رائعًا وخاليًا من الهزال لبناء حلول مخصصة ، مع الحفاظ على 99٪ من وظائف WP الأساسية المستخدمة لتشغيل SaaS.

هل يمكنني إزالة هذه الأشياء بأمان؟ ألا يخدمون غرضًا؟

نعم ، إنها تخدم غرضًا ، ولكن فقط في مواقف معينة. في موقع ويب "متوسط" ، لا تمثل بعض علامات link الإضافية في العنوان مشكلة ، كما أنها تجعل عمليات وتكامل معينة أسهل. لكنها ليست حاسمة لعمل أي موقع وبالتأكيد ليست ل SaaS.

لنقم بتنظيف بعض التعليمات البرمجية

يمكنك اختبار الكود أدناه مع أي موضوع. 2017 الافتراضي سيكون على ما يرام. ومع ذلك ، إذا كنت تستخدم سمات WordPress "العادية" (وبعض المكونات الإضافية فوق ذلك) ، فلا يمكنك أبدًا معرفة من أضاف الكود - WP core أو theme أو plugin. أقترح عليك إعادة تعيين موقعك لإزالة جميع المكونات الإضافية ثم استخدام سمة لا تحتوي إلا على wp_head() و wp_footer() . إليك كيف يبدو هذا index.php وإليك موضوع الاختبار الكامل الذي يمكنك استخدامه للاختبار.

<!DOCTYPE html>
<html>
<head>
  <?php
    wp_head();
  ?>
</head>
<body>
  <h1>The Most Basic WP Theme</h1>
  <?php
    wp_footer();
  ?>
</body>
</html>

إذا قمت بتنشيط موضوع الاختبار الخاص بنا وفتحت مصدر الصفحة الأولى ، فستلاحظ رمزًا أكثر بكثير مما هو مرئي في index.php أعلاه. هذا ما سنقوم بتنظيفه. ضع الكود أدناه في وظائف theme.php. إذا كنت لا ترغب في إزالة / تعطيل ميزة ، فقم بالتعليق خارج السطر الذي يشير إليها.

add_action('after_setup_theme', 'cleanup');

function cleanup() {
  remove_action('wp_head', 'rsd_link');
  remove_action('wp_head', 'wp_generator');
  remove_action('wp_head', 'feed_links', 2); 
  remove_action('wp_head', 'feed_links_extra', 3);
  remove_action('wp_head', 'index_rel_link');
  remove_action('wp_head', 'wlwmanifest_link');
  remove_action('wp_head', 'start_post_rel_link', 10, 0);
  remove_action('wp_head', 'parent_post_rel_link', 10, 0);
  remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);
  remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
  remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
  remove_action('wp_head', 'print_emoji_detection_script', 7);
  remove_action('wp_head', 'rel_canonical');
  remove_action('wp_head', 'rel_alternate');
  remove_action('wp_head', 'wp_oembed_add_discovery_links');
  remove_action('wp_head', 'wp_oembed_add_host_js');
  remove_action('wp_head', 'rest_output_link_wp_head');
  
  remove_action('rest_api_init', 'wp_oembed_register_route');
  remove_action('wp_print_styles', 'print_emoji_styles');
  
  remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
  remove_filter('pre_oembed_result', 'wp_filter_pre_oembed_result', 10);
  
  add_filter('embed_oembed_discover', '__return_false');
  add_filter('show_admin_bar', '__return_false');
}

ماذا ماذا

يعتبر إجراء rsd_link مسؤولاً عن عرض رابط الاكتشاف البسيط حقًا بينما يُظهر wp_generator إصدار WP وتتم إزالته تقريبًا بواسطة كل مكون إضافي للأمان تمت كتابته على الإطلاق لـ WP. يضيف الإجراءان feed_links ارتباطات مختلفة إلى العديد من موجزات RSS. تضيف إجراءات _rel_link المختلفة روابط إلى المنشورات حتى يسهل الوصول إليها والعثور عليها بسهولة من خلال الخدمات المختلفة. ما لم تكن تستخدم Windows Live Writer ، فأنت لا تحتاج حقًا إلى إجراء wlwmanifest_link . لا نحتاج إلى amojis ، لذا يمكن print_emoji_detection_script أن تذهب ، وينطبق الشيء نفسه على روابط oembed مختلفة بما في ذلك دعم oembed في REST API. ستعمل إزالة إجراء oembed_dataparse على التأكد من أن WP لا يعبث بأي روابط في منشوراتك ولا يحولها إلى أي وسائط غنية عبر oembed. عامل التصفية الأخير show_admin_bar سيمنع شريط إدارة WP من الظهور على الواجهة الأمامية بغض النظر عن إعدادات كل حساب.

لا يوجد سوى عدد قليل من الأشياء في #WordPress لا يمكن تعديلها بالإجراءات والفلاتر. لحسن الحظ ، فإن التحكم في محتوى HEAD ليس من بينها.

انقر على تويتر

مرونة WordPress رائعة

العديد من المقالات تطفو مع عناوين مثل "كيفية إزالة البريد غير الهام من رأس WP." إنه ليس خردة. إنها الأشياء التي تمنح WordPress قوة كبيرة بشكل مباشر. كثير من الناس يقدرون ذلك ، ولا يتعين عليهم قضاء ساعات في إعداد الأشياء. من ناحية أخرى ، فإن التنظيف هو مجرد مسألة إزالة بعض الإجراءات. لديك سيطرة كاملة على ما يتم وضعه في HTML الخاص بك ويمكنك بسهولة استخدام WordPress لتشغيل المواقع غير المحتوى مثل SaaSes.