قابلیت JSON REST API یا WP-JSON یک سرویس جدیدی است که از نسخه 4.4 وردپرس به این سیستم مدیریت محتوا وارد شده و به توسعه دهندگان اجازه می دهد برای بخش های مختلفی از سایت، اطلاعاتی ساختاریافته با فرم JSON دریافت کنند که این اطلاعات ساختاریافته برای اپلیکیشن های موبایلی یا نرم افزارهای دسکتاپ کاربرد دارند و به صورت یک API فعالیت می کنند اما شاید 95 درصد از کاربران وردپرسی به این قابلیت نیاز نداشته باشند بنابراین می توانیم این قابلیت را به طور کامل غیرفعال کنیم.

برای بررسی فعال بودن یا غیرفعال بودن WP-JSON سایت وردپرستان، کافیست آدرس سایت خود را در آدرس https://site.ir/wp-json جایگزین کرده و داخل مرورگر اجرا کنید. اگر در انتهای خروجی این لینک کد 403 نبود، یعنی این قابلیت در دسترس و فعال است.
1 . غیرفعال کردن از راه کد
هر چند غیرفعال کردن این قابلیت از طریق کد و بدون نیاز به افزونه، تا نسخه 4.7 بیشتر پشتیبانی نشده، اما برای تکمیل این تاپیک و لیست کردن تمامی راه های احتمالی، این کدها را برایتان قرار داده ایم. در اینجا 2 نوع کد مختلف داریم که به گفته توسعه دهندگان وردپرس، راه های کد از نسخه 4.7 به بعد تضمینی نیستند و ممکن است در برخی از سایت ها جوابگو باشد و در برخی سایت ها کار نکند! اما ارزش امتحان کردن را دارند. این کد باید در فایل functions.php
قالبتان استفاده شود:
اولین کد:
add_filter('json_enabled', '__return_false');
add_filter('json_jsonp_enabled', '__return_false');
دومین کد:
در صورتی که کد بالا کار نکرد، آن را حذف کنید و این کد را قرار دهید. این کد هم باید در functions.php
قالب قرار بگیرد:
add_filter( 'rest_authentication_errors', 'betalk_snippet_disable_rest_api' );
function betalk_snippet_disable_rest_api( $access ) {
return new WP_Error( 'rest_disabled', __('This REST just Disabled by Betalk!'), array( 'status' => rest_authorization_required_code()));
}
کد دوم به صورت اختصاصی آزمایش شده و به خوبی توانسته این قابلیت را غیرفعال کند:

2 . غیرفعال کردن از راه افزونه ها
حالت غیرفعال کردن افزونه ها، راحت ترین و مطمئن ترین روش است چرا که اگر طی نسخه های جدیدتر وردپرس، این بخش از وردپرس دچار تغییرات شود و نیاز باشد کد غیرفعال کردن JSON API هم تغییر کند، نیاز به کدنویسی نخواهید داشت و با آپدیت کردن افزونه این کار را به سادگی می توانید انجام دهید. افزونه های زیادی برای اینکار وجود دارد که باید آنها را نصب و امتحان کنید. برخی از آنها ممکن است نتیجه ای که می خواهید را نداشته باشند. لیست افزونه هایی که برای اینکار وجود دارد به این صورت هستند که خودتان آنها را باید بررسی کنید و یکی از آنها را نصب و استفاده کنید:
https://wordpress.org/plugins/disable-json-api/
https://wordpress.org/plugins/disable-wp-rest-api/
https://wordpress.org/plugins/wp-security-hardening/
تجربه استفاده از این روش ها را برای ما و دیگران به اشتراک بگذارید.