ویژگی تصویر

تابع add_option در وردپرس

  /  وردپرس   /  تابع add_option در وردپرس
بنر تبلیغاتی الف
wp - wordpress - وردپرس

در وردپرس، مدیریت تنظیمات (Options) یکی از بخش‌های کلیدی توسعه افزونه‌ها و قالب‌ها محسوب می‌شود. تابع add_option() یکی از توابع مهم در API گزینه‌های وردپرس (WordPress Options API) است که به شما امکان می‌دهد گزینه‌ای جدید را در پایگاه داده ثبت کنید. این تابع تنها زمانی گزینه را ایجاد می‌کند که گزینه‌ای با همان نام قبلاً وجود نداشته باشد.

کاربرد تابع add_option()

تابع add_option() زمانی استفاده می‌شود که بخواهید تنظیم یا داده‌ای را برای اولین بار در جدول wp_options ذخیره کنید. مثلاً زمانی که افزونه‌ای نصب می‌شود و نیاز به ذخیره تنظیمات پیش‌فرض دارد.

ساختار کلی تابع

add_option( 
    string $option, 
    mixed $value = '', 
    string $deprecated = '', 
    string|bool $autoload = 'yes' 
);

توضیح پارامترها

نام پارامترتوضیح
$optionنام گزینه‌ای که می‌خواهید در پایگاه داده ذخیره شود (باید یکتا باشد).
$valueمقدار گزینه. می‌تواند رشته، عدد یا آرایه باشد.
$deprecatedاین پارامتر منسوخ شده است و بهتر است همیشه خالی بماند.
$autoloadاگر مقدار آن yes باشد، وردپرس در هنگام بارگذاری سایت، گزینه را به‌صورت خودکار در حافظه بارگذاری می‌کند. در غیر این صورت باید دستی بارگذاری شود.

مثال ساده از استفاده تابع add_option()

add_option( 'my_plugin_version', '1.0.0' );

در این مثال، گزینه‌ای با نام my_plugin_version در جدول wp_options ایجاد شده و مقدار 1.0.0 به آن اختصاص داده می‌شود. اگر این گزینه از قبل وجود داشته باشد، وردپرس هیچ تغییری ایجاد نخواهد کرد.

مثال کاربردی‌تر در افزونه‌ها

function my_plugin_activate() {
    add_option( 'my_plugin_settings', array(
        'color' => 'blue',
        'font_size' => '16px',
        'enabled' => true
    ));
}
register_activation_hook( __FILE__, 'my_plugin_activate' );

در این مثال، هنگام فعال‌سازی افزونه، تنظیماتی پیش‌فرض ایجاد می‌شود. این کار باعث می‌شود کاربر پس از نصب افزونه، مقادیر اولیه را داشته باشد.

توضیح عملکرد کد بالا:

  • register_activation_hook(): تابعی است که هنگام فعال‌سازی افزونه اجرا می‌شود.
  • add_option(): گزینه‌ای جدید با تنظیمات پیش‌فرض ایجاد می‌کند.
  • اگر گزینه‌ای با نام my_plugin_settings قبلاً وجود داشته باشد، وردپرس از ایجاد مجدد آن جلوگیری می‌کند.

بررسی مقدار خودکار بارگذاری (Autoload)

پارامتر $autoload نقش مهمی در بهینه‌سازی عملکرد وردپرس دارد. اگر مقدار آن yes باشد، وردپرس در هر بار بارگذاری صفحه، آن گزینه را در حافظه بارگذاری می‌کند. برای تنظیماتی که به‌صورت مکرر استفاده می‌شوند، این گزینه مناسب است. اما اگر گزینه‌ای فقط در بخش خاصی از سایت نیاز باشد، بهتر است autoload را no قرار دهید.

add_option( 'my_plugin_heavy_data', $data_array, '', 'no' );

در این مثال، گزینه در پایگاه داده ذخیره می‌شود اما به‌صورت خودکار بارگذاری نخواهد شد. این کار باعث کاهش مصرف حافظه (Memory Usage) و افزایش سرعت سایت می‌شود.

نکات و بهترین روش‌ها (Best Practices)

  • قبل از افزودن یک گزینه، بهتر است بررسی کنید که آیا گزینه از قبل وجود دارد یا خیر. برای این کار از get_option() استفاده کنید.
  • در صورت نیاز به به‌روزرسانی مقدار یک گزینه موجود، از update_option() استفاده کنید.
  • برای حذف یک گزینه غیرضروری از delete_option() استفاده نمایید.
  • نام گزینه‌ها را با پیشوند (prefix) افزونه خود مشخص کنید تا از تداخل با دیگر افزونه‌ها جلوگیری شود.

نمونه ترکیب توابع با هم:

if ( get_option( 'my_plugin_installed' ) === false ) {
    add_option( 'my_plugin_installed', true );
}

در اینجا ابتدا بررسی می‌شود که آیا گزینه my_plugin_installed وجود دارد یا نه. اگر وجود نداشت، با add_option() ایجاد می‌شود.

مقایسه add_option() و update_option()

ویژگیadd_option()update_option()
ایجاد گزینه جدیدفقط اگر وجود نداشته باشداگر وجود نداشته باشد، ایجاد می‌کند
به‌روزرسانی مقدارخیر، فقط ایجاد می‌کندبله، مقدار جدید را جایگزین می‌کند
کاربرد اصلیراه‌اندازی اولیه یا نصب افزونهتغییر تنظیمات در آینده

نکات امنیتی در استفاده از add_option()

  • از ذخیره داده‌های حساس مانند رمز عبور در گزینه‌ها خودداری کنید.
  • در هنگام دریافت ورودی از کاربران، قبل از ذخیره‌سازی از توابع ضد تزریق (مانند sanitize_text_field() یا sanitize_email()) استفاده کنید.
  • از نام‌های عمومی یا رایج برای گزینه‌ها استفاده نکنید؛ زیرا ممکن است با دیگر افزونه‌ها تداخل ایجاد کند.

نکته پیشرفته: بررسی نتیجه اجرای تابع

تابع add_option() در صورت موفقیت مقدار true و در صورت وجود گزینه قبلی مقدار false برمی‌گرداند. می‌توانید از این ویژگی برای بررسی صحت ایجاد گزینه استفاده کنید.

$added = add_option( 'my_plugin_theme', 'dark' );
if ( $added ) {
    echo 'Option created successfully!';
} else {
    echo 'Option already exists.';
}

در این مثال، اگر گزینه قبلاً وجود نداشته باشد، پیام موفقیت نمایش داده می‌شود.

جمع‌بندی

تابع add_option() یکی از پایه‌ای‌ترین ابزارها در توسعه افزونه و قالب وردپرس است. با استفاده درست از آن، می‌توانید تنظیمات اولیه افزونه‌ها و داده‌های پیکربندی را به‌صورت امن و بهینه در پایگاه داده ذخیره کنید. رعایت نکات امنیتی، استفاده از autoload مناسب و انتخاب نام‌های منحصربه‌فرد، از اصول کلیدی در کار با این تابع محسوب می‌شود.

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: