“این کد رو بذار داخل فایل functions.php قالب!” این جملهای است که بسیاری از کاربران وردپرس برای اضافه کردن کدهای PHP به سایت خود میشنوند. این روش بهنظر سریع و آسان میآید، اما در واقع مشکلاتی ایجاد میکند که میتواند باعث از دست رفتن کدهای مهم شود. بهویژه زمانی که به کدهای حیاتی مانند موارد امنیتی یا منطق کسبوکار نیاز دارید، این روش میتواند خطرناک باشد.
اگر از functions.php برای اضافه کردن کدهای حیاتی استفاده کنید، با تغییر یا بهروزرسانی قالب، این کدها حذف خواهند شد و سایت شما در معرض خطر قرار میگیرد. به جای این روش، میتوانید از MU-Plugins استفاده کنید؛ افزونههایی که همیشه فعال هستند و از تغییرات قالب بیتأثیرند.
برای روشن شدن بهتر موضوع، بیایید این موضوع را با یک مثال ساده توضیح دهیم: فرض کنید میخواهید دسترسی به پنل مدیریت وردپرس را فقط به IPهای خاص محدود کنید. اگر این کد را در فایل functions.php قرار دهید، در صورت تغییر قالب یا آپدیت آن، کد شما از بین خواهد رفت. در عوض، با استفاده از MU-Plugins، میتوانید این سیاست را برای همیشه فعال نگه دارید و حتی در صورت تغییر قالب یا نصب افزونههای جدید، امنیت سایت شما تحت تأثیر قرار نخواهد گرفت.
MU-Plugins (Must Use Plugins) افزونههایی هستند که بدون نیاز به فعالسازی، همیشه فعال میمانند. این افزونهها قبل از افزونههای معمولی در وردپرس لود میشوند و بهطور خودکار از پیشخوان قابل غیرفعالسازی نیستند. این ویژگیها باعث میشود که MU-Plugins برای کدهای حیاتی مانند سیاستهای امنیتی، منطق کسبوکار و کدهای اصلی سایت، انتخاب مناسبی باشند.
wp-content
شوید.mu-plugins
وجود ندارد، آن را بسازید. (این پوشه به صورت پیش فرض وجود ندارد)nabik.php
بسازید.در این مثال، تنها IPهای مشخص به پنل مدیریت وردپرس دسترسی خواهند داشت:
<?php
/*
Plugin Name: Nabik Security - Restrict Admin Login
Description: محدود کردن ورود به پنل مدیریت برای IPهای مجاز
Author: Nabik
*/
if ( ! defined( 'ABSPATH' ) ) exit;
// لیست IPهای مجاز
$allowed_ips = [
'123.45.67.89', // دفتر مرکزی
'98.76.54.32', // لپتاپ شخصی
];
// بررسی درخواستهای ورود و بخش مدیریت
if ( is_admin() || $GLOBALS['pagenow'] === 'wp-login.php' ) {
if ( ! in_array( $_SERVER['REMOTE_ADDR'], $allowed_ips ) ) {
wp_die('دسترسی شما به بخش مدیریت محدود شده است.');
}
}
این کد از ورود کاربران غیرمجاز به پیشخوان جلوگیری میکند و تا زمانی که این فایل در پوشه MU-Plugins باشد، همیشه فعال خواهد بود.
اگر میخواهید چندین فایل MU-Plugin را در پوشهای جداگانه نگه دارید، میتوانید از یک لودر برای لود کردن این فایلها استفاده کنید. این کار به شما کمک میکند که ساختار سایتتان مرتب و قابل مدیریت باشد.
wp-content/mu-plugins/nabik-loader.php
wp-content/mu-plugins/nabik/
nabik
را لود کنید.فایل لودر:
<?php
/*
Plugin Name: Nabik MU Loader
Description: لودر فایلهای MU برای ساختاردهی بهتر
Author: Nabik
*/
if ( ! defined('ABSPATH') ) exit;
$dir = __DIR__ . '/nabik';
if ( is_dir($dir) ) {
foreach ( glob($dir . '/*.php') as $file ) {
require_once $file;
}
}
ساختار پوشهها:
wp-content/
mu-plugins/
nabik-loader.php
nabik/
security-login-ip.php
hardening.php
ویژگی | MU-Plugins | functions.php |
---|---|---|
با تغییر قالب حذف میشود؟ | ❌ نه | ✅ بله |
امکان غیرفعالسازی از پیشخوان | ❌ نه | ❌ وابسته به قالب |
زمان لود | قبل از همه افزونهها | همراه قالب |
مناسب برای | امنیت، منطق حیاتی | تغییرات وابسته به ظاهر |
آپدیت و نگهداری | دستی | همراه قالب |
mu-plugins
باشد، بهطور خودکار اجرا میشود.MU-Plugins یک روش امن و حرفهای برای نگهداری کدهای حیاتی وردپرس هستند. بهجای قرار دادن این کدها در functions.php
، آنها را در یک MU-Plugin قرار دهید تا همیشه فعال بمانند، بدون اینکه به قالب یا افزونههای دیگر وابسته باشند.
این آموزش توسط تیم نابیک برای بهبود عملکرد و تجربه کاری سایتهای وردپرسی ارائه شده است. اگر سوالی دارید یا به کمک بیشتری نیاز دارید، حتماً در بخش نظرات با ما در ارتباط باشید!
دیدگاهتان را بنویسید