طريقة تعطيل WP Rest API

wp rest api

كلنا نعرف أنه في اﻹصدار 4.4 لووردبريس تم دمج WP Rest API في النواة، لكن هل يستعملها أحد منا حاليا؟ هل لديك في موقعك تطبيق معيّن يستعملها؟ إذاً لماذا نتركها مفعّلة؟ هل تعلم أن WP Rest API تضيف روابط أنت لا حاجة لك بها إلى منطقة ال head؟

وجود روابط أكثر يعني استعلامات أكثر، يعني زيادة في مدة تحميل الموقع، وكما نعلم جميعنا سرعة تحميل المواقع هي جد مهمة في تحسبن اﻷرشفة وتحسين تجربة المستخدم. إذا كانت سرعة موقعك وأدائه مهمين بالنسبة لك، من الواجب عليك تعطيل WP Rest API في حالة عدم استعمالك لها. كيف ذلك؟ لا تقلق، سأشرح لك اﻷمر كله حالاً 🙂

هناك طريقتين لحذف روابط WP Rest API من ترويسة (head) الموقع، اﻷولى عبر حذف كل رابط على حدا والثانية عبر تعطيل WP Rest API بشكل كلي … لنبدأ إذا!!

اقرأ أيضا: كيف يمكنني تعطيل وحدات JetPack باحترافية؟

تعطيل رابط REST API من ترويسة HTTP

الرابط يكون على الشكل التالي:

Link: <https://saidelbakkali.com/wp-json/>; rel="https://api.w.org/"

يمكننا حذفه بإضافة الكود التالي لملف functions.php للقالب المفعّل أو ﻹضافتك المخصّصة:

remove_action('template_redirect', 'rest_output_link_header', 11);

تعطيل رابط REST API من ترويسة HTML

الرابط الثاني يكون على هذا الشكل:

اقرأ أيضا: الدليل الشامل لأنواع المقالات المخصصة في ووردبريس

<link rel='https://api.w.org/' href='https://saidelbakkali.com/wp-json/' />

وأيضا يمكننا حذفه بإضافة هذا الكود في نفس المكان المذكور سابقاً.

remove_action('wp_head', 'rest_output_link_wp_head', 10);
remove_action('xmlrpc_rsd_apis', 'rest_output_rsd');

تعطيل WP Rest API كلياً

أيضاً، إذا أردت يمكنك تعطيل WP Rest API بشكل كامل، وذلك بوضع هذه الدالة … هل أقول مرة أخرى أين تضعها؟ في ملف functions.php للقالب المفعّل أو في إضافتك المخصّصة.

/**
 * Disable REST API if user not logged in.
 *
 * @param null $access
 * @return WP_Error|null|true
 */
function disable_wp_rest_api( $access ) {

	if ( ! is_user_logged_in() ) {

		$message = apply_filters( 'disable_wp_rest_api_error', __( 'REST API restricted to authenticated users.', 'saidelbakkali' ) );

		return new WP_Error( 'rest_login_required', $message, array( 'status' => rest_authorization_required_code() ) );

	}

	return $access;
}
add_filter( 'rest_authentication_errors', 'disable_wp_rest_api' );

كما تلاحظ، السطرين اﻷولين يقومان بتعطيل اﻹصدار اﻷول ل wp rest api والسطرين المواليين يقومان بتعطيل اﻹصدار الثاني.

اقرأ أيضا: طريقة تعيين الصورة المصغرة لفيديو يوتيوب تلقائيا على ووردبريس

لا تريد إضافة الكود يدوياً؟ إذاً قم بتنصيب إضافة Disable JSON API، اﻹضافة تعمل مباشرة بعد تفعيلها ولا تحتاج ﻷي إعداد إضافي.

أتمنا أن أكون قد أفدتك بهذه التدوينة، في المرة القادمة سنرى كيفية تنظيف ترويسة ووردبريس بشكل أكبر.

السلام عليكم.

اقرأ أيضا: كيفية إخفاء بعض الإضافات من لوحة تحكم ووردبريس

close

قم بالتسجيل على قائمتي البريدية لكي تكون من الأوائل في الحصول على تدوينات وشروحات حصرية

أنا لا أرسل أبدا البريد المزعج! اقرأ سياسة الخصوصية لمزيد من المعلومات.

3 تعليقات

  1. السلام عليكم أخي سعيد
    تمام فهمت كيف أجد الخدمة وكيف ألغيها
    بس سؤالي بالنسبة لهذه الأداة ما هي وظيفتها وما فائدتها
    أرجو الرد وشكراً

اترك تعليقًا

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *