جدیدا مد شده توی گروه ها و... هرکی هر سوالی میپرسه یه عده هستن فقط ریپلای میکنن و میگن چرا نمیدی هو…
انتشار: 2026/06/30 18:49 UTCدریافت: 2026/08/15 03:30 UTCآخرین مشاهده: 2026/08/15 03:30 UTC
جدیدا مد شده توی گروه ها و... هرکی هر سوالی میپرسه یه عده هستن فقط ریپلای میکنن و میگن چرا نمیدی هوش مصنوعی!خب عزیزدلم اخه قربون اون مغز فوق پیشرفتهات طرف خودش عقلش میرسه که هوش مصنوعی هم وجود داره.درسته هوش مصنوعی هست و کارهارو انجام میده ولی نه همهشو!!!ابزاریه برای سرعت بخشیدن به کار، ابزاری نیست که کارو بسپاری بهش دیگه ۱۰۰ درصد تحویل بگیری که.ضمنا باید عمل اینو هم داشته باشی که بتونی ازش استفاده کنی 😉
تاریخچه بازدید مشاهدهشده
حدود 0 بازدید تازه در ساعت در این نمونهپستهای تلگرام — قلب وردپرس | آموزش جامع
🚨میدونی که 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
#اطلاع_رسانی ❗️فوری سلام و عرض ادب، به یک نفر نیازمندیم برای طراحی یک صفحه معرفی افزونه و امکانات آن با المنتور ✅ سلیقه خوب✅ رعایت کلیه نکات طراحی✅ تسلط کافی به المنتورجهت کسب اطلاعات بیشتر لطفا به آیدی @mim_da پیام بدید.
🚨 هنوز جدول افزونهات رو با 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

