#اطلاع_رسانی ❗️فوری سلام و عرض ادب، به یک نفر نیازمندیم برای طراحی یک صفحه معرفی افزونه و امکانات آ…
انتشار: 2026/07/15 14:14 UTCدریافت: 2026/08/15 03:30 UTCآخرین مشاهده: 2026/08/15 03:30 UTC
#اطلاع_رسانی ❗️فوری سلام و عرض ادب، به یک نفر نیازمندیم برای طراحی یک صفحه معرفی افزونه و امکانات آن با المنتور ✅ سلیقه خوب✅ رعایت کلیه نکات طراحی✅ تسلط کافی به المنتورجهت کسب اطلاعات بیشتر لطفا به آیدی @mim_da پیام بدید.
تاریخچه بازدید مشاهدهشده
حدود 1 بازدید تازه در ساعت در این نمونهپستهای تلگرام — قلب وردپرس | آموزش جامع
🚨میدونی که Nonce وردپرس «رمز یکبارمصرف» نیست!خیلیها فکر میکنن وقتی اینو مینویسن:wp_nonce_field( 'delete_product', 'my_nonce' );دیگه عملیاتش کاملاً امن شده.❌اما کاملا اشتباه!Nonce در وردپرس احراز هویت نیست و بهتنهایی مجوز انجام عملیات نمیده.پس Nonce دقیقاً چیکار میکنه؟Nonce عمدتاً برای مقابله با CSRF استفاده میشه.یعنی کمک میکنه بفهمیم:این درخواست احتمالاً از همان سایت و جریان مورد انتظار ارسال شده؟اما این به معنی این نیست که:این کاربر اجازه انجام این عملیات را دارد.❌ در مثال زیر یک کد ناقص رو میبینیم :if ( wp_verify_nonce( $_POST['my_nonce'], 'delete_product') ) { wp_delete_post( $product_id );}اینجا فقط Nonce بررسی شده.اما Capability کاربر بررسی نشده!✅ روش حرفهای که در مثال زیر یک تکه کد کامل و اصولی رو میبینیم :if ( ! current_user_can( 'delete_post', $product_id ) ) { wp_die( 'Access denied' );}if ( ! wp_verify_nonce( $_POST['my_nonce'] ?? '', 'delete_product') ) { wp_die( 'Invalid request' );}wp_delete_post( $product_id );اینجا دو موضوع جدا بررسی میشن:Nonce → آیا درخواست معتبر/مورد انتظار است؟Capability → آیا این کاربر اجازه انجام این کار را دارد؟🤯 و یک نکته خفنتر که باید بدونید !اسمش Nonce هست، اما در وردپرس الزاماً یکبارمصرف نیست!Nonceهای وردپرس معمولاً در یک بازه زمانی قابل استفاده مجدد هستند و عمر پیشفرضشان حدود ۱۲ تا ۲۴ ساعت است؛ بنابراین نباید آن را با OTP یا Token یکبارمصرف اشتباه گرفت.💎 قانون حرفهای وردپرس که توسعه دهنده ها باید بدونن :Nonce = محافظت در برابر CSRFCapability = کنترل دسترسیAuthentication = شناسایی کاربراین سه تا را با هم قاطی نکن. 🔥بیشتر بدون 👇👇👇@wpheart
🚨 هنوز جدول افزونهات رو با CREATE TABLE میسازی؟اگر افزونهنویسی میکنی، این اشتباه میتونه موقع آپدیت افزونه، کاربرات رو به دردسر بندازه!🤔 بیاید واقعی ببینیم فرض کن نسخه 1.0 افزونهات رو منتشر کردی و این جدول رو ساختی:global $wpdb;$table = $wpdb->prefix . 'customers';$sql = "CREATE TABLE $table ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY (id));";همه چیز عالیه 😐 اما مدتی بعد...تصمیم میگیری شماره موبایل مشتری رو هم ذخیره کنی.یعنی جدول باید این شکلی بشه:phone VARCHAR(20) NOT NULLحالا اگر دوباره همون CREATE TABLE رو اجرا کنی چی میشه؟❌ جدول از قبل وجود داره.❌ ستون جدید اضافه نمیشه.❌ افزونه روی سایت هزاران کاربر ناقص کار میکنه.✅ راهکار حرفهای وردپرسبه جای اجرای مستقیم SQL از:dbDelta();استفاده کن.require_once ABSPATH . 'wp-admin/includes/upgrade.php';dbDelta( $sql );🔥 dbDelta() چه کار میکنه؟اگر جدول وجود نداشته باشه:✅ میسازه.اگر ستون جدید اضافه کرده باشی:✅ فقط همون ستون رو اضافه میکنه.اگر Index جدید تعریف کرده باشی:✅ اون رو هم اعمال میکنه.بدون اینکه اطلاعات قبلی کاربران حذف بشه.📌 مثال واقعینسخه 1.0idnameemailنسخه 1.1idnameemailphoneکافیه مقدار $sql رو تغییر بدی و دوباره:dbDelta( $sql );رو اجرا کنی.وردپرس خودش تشخیص میده فقط ستون phone کم شده و همون رو اضافه میکنه.⚠️ نکته مهمdbDelta() فقط زمانی درست کار میکنه که SQL رو مطابق استاندارد وردپرس بنویسی.مثلاً:✔️ حتماً PRIMARY KEY با دو فاصله قبل از پرانتز نوشته بشه:PRIMARY KEY (id)و بهتره از: require_once ABSPATH . 'wp-admin/includes/upgrade.php'; قبل از فراخوانی dbDelta() استفاده کنی، چون این تابع بهصورت پیشفرض در همه درخواستها بارگذاری نشده است.💎 قانون Seniorهابرنامهنویس حرفهای فقط به نصب افزونه فکر نمیکنه...به این فکر میکنه که نسخه ۱.۵ افزونه روی سایت ۵۰ هزار کاربر، بدون از دست رفتن حتی یک رکورد، بهروزرسانی بشه.😏 اگر تا امروز فقط از CREATE TABLE استفاده میکردی الان میدونی چرا تیم توسعه وردپرس dbDelta() رو ساخته. 😉 @wpheart
🚨 این Hook مخفی قبل از ذخیره شدن هر Option اجرا میشه!فکر میکنی فقط بعد از ذخیره تنظیمات میشه کاری انجام داد؟❌ نه...وردپرس قبل از اینکه هر Option داخل دیتابیس ذخیره بشه، یک Hook فوقالعاده قدرتمند اجرا میکنه.pre_update_option_{$option}🤔 این Hook چه کاری انجام میده؟قبل از ذخیره شدن مقدار جدید، میتونی:✅ مقدار رو تغییر بدی✅ اعتبارسنجی کنی✅ جلوی ذخیره شدنش رو بگیری✅ دادهها رو رمزنگاری کنی✅ مقدار قبلی و جدید رو با هم مقایسه کنی🔥 مثال واقعی :فرض کن نمیخوای عنوان سایت تغییر کنه.add_filter('pre_update_option_site_name', function( $new, $old ) { return $old; }, 10, 2);نتیجه؟هرچقدر هم کاربر ایمیل جدید وارد کنه...هیچوقت داخل دیتابیس ذخیره نمیشه!🚀 کاربردهای حرفهای :✔️ جلوگیری از تغییر تنظیمات حساس✔️ ثبت Log قبل از تغییر✔️ اعتبارسنجی تنظیمات✔️ جلوگیری از ورود داده اشتباه✔️ همگامسازی با APIهای خارجی✔️ رمزنگاری اطلاعات قبل از ذخیره⚠️ چیزی که کمتر کسی میدونه...اکثر برنامهنویسها بعد از ذخیره شدن اطلاعات سراغ update_option() میرن...در حالی که حرفهایها قبل از ذخیره شدن داده رو کنترل میکنن.💎 قانون Seniorهاهمیشه بهترین زمان برای کنترل داده...قبل از ورود به دیتابیسه، نه بعد از اون.😏 شرط میبندم کمتر از ۵٪ برنامهنویسهای وردپرس از این Hook استفاده کردن.@wpheart
❗️از اون پست هایی که منبعش ماییم 😜🚨 افزونهای که هیچکس نمیتونه از پنل وردپرس غیرفعالش کنه!🖌 فکر میکنی همه افزونههای وردپرس از مسیر:wp-content/pluginsاجرا میشن؟❌ نه! اشتباه فکر کردی.وردپرس یک نوع افزونه ویژه داره به اسم:Must-Use Plugin (MU Plugin)که در مسیر:wp-content/mu-pluginsقرار میگیره.━━━━━━━━━━━━━━🤔 چرا اسمش Must-Use هست؟چون...✅ به محض قرار گرفتن داخل پوشه mu-plugins، بهصورت خودکار فعال میشه.و مهمتر اینکه...❌ دکمه Deactivate نداره!یعنی مدیر سایت از پنل وردپرس نمیتونه غیرفعالش کنه.━━━━━━━━━━━━━━🔥 MU Plugin چه کاربردی داره؟✔️ کدهای امنیتی✔️ محدود کردن کاربران✔️ اتصال به سرویسهای سازمانی✔️ لاگگیری✔️ تغییرات سراسری روی همه سایتها✔️ کدهایی که نباید هیچوقت غیرفعال بشن━━━━━━━━━━━━━━🚀 چرا شرکتهای بزرگ از MU Plugin استفاده میکنن؟ اگر یک کاربر تمام افزونههای سایت رو غیرفعال کنهباز هم MU Plugin اجرا میشه!به همین دلیل، برای قابلیتهای حیاتی انتخاب بسیار مناسبیه.━━━━━━━━━━━━━━⚠️ اما یه نکته مهم : برخلاف افزونههای معمولی:❌ فایل اصلی MU Plugin باید مستقیماً داخل پوشه mu-plugins قرار بگیره.اگر افزونه چند فایل داره، معمولاً یک فایل Loader داخل mu-plugins قرار میدن که فایلهای اصلی رو از پوشه دیگری require میکنه.━━━━━━━━━━━━━━💎 قانون Seniorهاهمه چیز رو افزونه معمولی ننویس...بعضی قابلیتها باید همیشه فعال باشن، حتی اگر همه افزونههای سایت غیرفعال بشن.━━━━━━━━━━━━━━🔰 اینجا یه قدم از خیلی از برنامهنویسهای وردپرس جلوتری. 😉@wpheart

