وردپرس خوب بد زشت

چیزی که باعث نگارش این مطلب شد اینه که تعداد مشتری های وردپرس ما در سال از ۳ تا ۴ تا به هفته ای ۳ تا ۴ تا رسیده در حالی که ما در اصل جوملا کار هستیم و جذابیت طراحی های ما برای وردپرس در فروشگاه قالب های جوملا dimatemplate.ir را میتوان در چند چیز دید. این مطلب جنبه تبلیغاتی نداره فقط قصد دارم به عنوان یک جوملا کار که قالب وردپرس زده و به تازگی هم برای وردپرس پلاگین نوشته مطلبی رو بنویسم که دوستان دیگر هم بدونن بد نیست شاید مفید شایده شد.چیزی که من در این چند ساله از مشتری های خودم که اکثرا دولتی یا دانشگاهی هستند متوجه شدم این هست که قالب های ایرانی بر روی وردپرس خیلی خیلی اندک هست ٬‌طراحان یا توسعه دهنده گان ایرانی وردپرس ترجیح میدن که قالب های خارجی رو ترجمه کنند یا بفروشند.خب ایراد کار کجاست؟ایراد کار اینجاست که در ایران کمتر کسی به خودش زحمت میده و لایسنس قالب رو خریداری می کنه ٬‌اگر هم لایسنس خریداری کنه تک نسخه و فقط برای خودش هست نه مشتری ٬‌شما فکر نکنم تا حالا قالب وردپرسی رو دیده باشید که به شما کد لایسنس معتبر برای دانلود از سایت مادر رو داده باشه من که نشنیدم خب کجا مشکل ایجاد می کنه؟مشکل اینجاست که قالب های خارجی بر خلاف قالب های ایرانی از سبک کد نویسی خاص یک شرکت یا یک گروه تبعیت می کنه و به خاطر استفاده بین المللی این قالب ها هکر ها نیز علاقه مند به بررسی امنیت این قالب ها هستند. این مشکل وقتی بزرگ تر میشه که شما به جای خرید قالب با لاینس اصلی از قالب های نال یا قالب های لایسنس محدود استفاده می کنید. سایت شما بروز نیست و قالب شما هم خارجی است که اسکنر های بوت یا ر بات های هک میتونند پیداتون کنند.چطوری پیدا می کنند؟توی وردپرس یک امکان هست که با زدن هر پست در سایت یک کد برای یه سری سایت خارجی pin ارسال میشه که این سایت بروز شد. این امکان خیلی خوبی هست هم برای سئو هم برای معرفی سایت هم برای ترافیک سایت اما کجا بد میشه بد اونجایی میشه که هکر ها هم خبر میشن یه سایت وردپرسی تازه کار اومده بالا ٬ پس زحمت می کشن و اولین مورد قالب شما رو چک می کنند ٬‌شما هم تازه کار برای امنیت کاری نکردید یا مثل قالب از افزونه های نال استفاده کردید یعنی در خونه دزدی رو با قفل دزدی که کلیدش دست هر کسی هست قفل کردید. من چیزی نمی گم شما هم بروی خودتون نیارید که بعدش قراره چه اتفاقی بیفته.قراره چه اتفاقی بیافته؟خب نشد که نگم ٬‌متاسفانه بعد از اینکه سایت شما رو پیدا می کنند اون رو هک می کنند اما دیفیس نمی کنند که شما متوجه بشید. یعنی شما رو آلوده ویروس یا ورم یا هر چیزی دیگه ای می کنند تا براشون نقش ناقل یا نقش ابزار رو ایفا کنید. از شما برای هک ٬‌دزدی و اتک زدن به بانک های خارجی استفاده می کنند که روشی مرسوم در DDoS هست. فقط یه مورد رو بگم اگر روزی هوس سفر خارجی یا اقامت کردید بدونید اگر شما سایتی داشته باشید که اسپم فرستاده و در کشوری باشید که قانون ارسال اسپم جرم باشه شما ناخواسته مرتکب جرمی شدید که یه نمونه اش ۱۲ سال زندان در اکثر کشور های اروپایی داره.خب از بحث خیلی دور نشیم بر می گردیم سر اصل داستان خودمونچرا ما وردپرس کار شدیم؟اول براتون بگم که جوملا ساختاری مهندسی و برپایه MVC داره ٬ که شامل سه بخش در طراحی نرم افزار میشه یعنی module view control ٬‌خب این به چه معناست؟ یعنی در نرم افزارهایی که برای جوملا نوشته میشه کد طراحی با کد برنامه نویسی با هم یه جا نیستند و جدا هستند و یک کنترلر مسئول کنترل و اجرای این ۲ تا هست. این سبک برنامه نویسی خیلی زیبا و خیلی منظم و مرتب هست ٬‌اما وردپرس چی؟ وای نگو از وردرپرس. حالم بد شد یه لحظه ٬ اصل هیچ قانونی وجود نداره خدا به دادمون برسه . شما یه پلاگین رو باز کن سورسش رو نگاه کن شبیه کیف آقای ووپیه! خدایا کمک این یعنی چی ؟ میرم سراغ معروف ترین نرم افزار بروی ورد پرس یعنی ووکامرس! ظاهری زیبا اما پشت صحنه ای اسفناک! چرا اسفناک ؟ چون طراحاش معلوم یه چیز دم دستی میخواستن بنویسن بعد استقبال شده و اومدن توسعه اش دادن اما سورس رو اصلاح نکردن. به خودشون گفتن کی میفهمه؟‌کی حوصله داره سورس رو نگاه کنه. بله این طراحان تنبل حتی حاظر نشدن برای برنامه خودشون تیبل تو دیتابیس ایجاد کنند تا برسه به این که از تکنولوژی بخوان استفاده کنند. الان یه سوال پیش اومد٬ خب اگر دیتابیس ندارن پس دیتای ما کجا میره که میان نشون هم میدن؟ بله سوال خوبیه ٬‌این برنامه خیلی راحت میاد دیتای فروشگاه رو میریزه توی تبل های پست وردپرس فقط نوعش رو برای خودش زحمت میکشه محصول میزار٬‌خب سوال بعدی مشتری خرید میکنه فاکتورش چیه ؟ خب خرید های مشتری میشه کامنت یه پست :)) این میشه که من از گشادی برنامه نویس های وردپرس خوشم اومد و اولین پلاگین خودم رو نوشتم؟چرا برای وردپرس این همه پلاگین طراحی هست شما باز یکی نوشتید؟جواب سوال ساده است من دیدم بری طراحی یه قالب خبری یا قالب شرکتی باید ۳۰ تا ۴۰ افزونه نصب کنم یا به زبان ساده تر برای هر حالت نمایشی یه پلاگین نصب کنم که این یعنی سایت سنگین یعنی لود بالا یعنی سورس مسخره یعنی کد های اضافه یعنی ... دیوانه شدم و گفتم ببینم اصول طراحی پلاگین توی وردپرس چیه؟چطوری برای وردپرس پلاگین ایجاد کنیم؟من نمی خوام آموزش بدم اما شما هم بدونید بد نیست کافیه تو پوشه پلاگین وردپرس یه پوشه درست کنید اسم پلاگین رو بزارید روش بعد توش یه فایل php کپی کنید و توش ۴ خط کدتون رو بنویسد. من هم خندیدم هم خوشحال شدم ٬ چون برای جوملا مجبور بودم ۳۲ تا فایل رو ایجاد کنم تا فقط کامپوننت من نصب بشه همین٬ اما توی وردپرس نه این یه مزیت برای ادم تنبلی مثل من بود ( به شما پیشنهاد می کنم که شما هم یه چند تا پلاگین برای وردپرس درست کنید بخنیدید) بله پلاگین متولد شد هی من سوال برام پیش اومد هی سرچ کردم اما الان یه مشکل تازه دارم من روی جوملا کارهام توی چند تا فایل بود راحت مدیریت می کردم اما توی وردپرس یه فایل دارم که وقتی بازش می کنم خودم میترسم ٬ دقیقا کیف آقای ووپی هر روز هم برای امکاناتی که بهتش دارم اضافه می کنم به این فایل ۳۰۰ خط اضافه میشه خدا به دادم برسه. یه سری روش ها هم هست که شما میتونید استفاده کنید که بد نیست مثل یه سایت پیدا کردم انلاین پلاگین وردپرس تولید میکنه٬ نسبت به کدی که خودمون می نویسیم هم کد نویسی بهتر و منظم تری داره شما میتونید سرچ کنید چون این پست تبلیغی نیست اسمش رو نمی یارم.خب الان رسیدم به اصل موضوع یعنی چی یعنی این همه گفتم که خوب بد زشت وردپرس رو بگموردپرس تعریفش جالبه :‌نرم افزاری برای راه اندازی وبلاگ یا وب سایت.یعنی طراحانش هم فکر نمی کردن یه مجموعه دولتی حاضر بشه سایتش رو با وردپرس بزنه ٬ دیدگاه اونها باعث شد تا من بترسم یه مدت زیاد وقت گذاشتم و سورس وردپرس رو فایل به فایل خودندم و به ترسم اضافه شد. دقیقا اتفاقی که برای پلاگین من افتاده برای سورس وردپرس هم افتادهوردپرس چون میخواسته کار ساده بشه ٬‌سورس ساده نوشته اما وقتی استقبال شده ٬‌اتفاق بد هم افتاده نیازها بیشتر شده و سورس حجیم شده. بد نیست بدونید جوملا تو هر نسخه که بالا میره هر چند وقت یک بار سورس رو از اول باز نویسی می کنند.از کجا بفهمین ساختار یه نرم افزار چند بار باز نویسی شده؟شرکت های خارجی یا برنامه نویسان عزیزشون قانون مند هستند و خیلی پایه رعایت این قانون های خوب هستند.مثلا یک نرم افزار ورژنش میخوره ۳.۹.۱۳ یعنی چی؟یک یعنی ساختار این برنامه ۳ بار باز نگری یا بازنویسی شدهدو ۹ بار اصول برنامه نویسی یا ساختاری توی نسخه ۳ بازنگری یا بازنویسی شدهسه ۱۳ بار براش پچ امنیتی یا نرم افزاری زدنحالا فهمیدید داستان ورژن ها چیه؟پس الان وردپرس نسخه ۳.۵.۳ هست باید ۳ بار باز نویسی شده باشه؟ نمی دونم اما فکر می کنم خودشون از کدی که نوشتن این برداشت رو داشتن ٬ من که سورس رو دیدم همون سورس ده سال پیش هست فقط یه کم چون زیاد هک می شدن سوراخ های این آبکش رو بستن اما آبکشه دیگه خیلی سوراخ داره شما هم چسبی چیزی دم دستتون بود ببندید خیلی خطرناکه ٬‌بد بختی مثل جوملا ادمین مستقل نیست و شما نمی تونید روی ادمین پسورد بزاری یا محدودش کنی ٬‌هی باید بعد از هر بروز رسانی یا افزونه نصب کنی برای حل مشکل امنیتی تغییر مسیر ادمین یا باید یه فکری براش بکنید.این هم قسمت بد وردپرس ٬ حالا قسمت زشتش کجاست؟قسمت زشت وردپرس برای ما ایرانی هاست؟ ما ایرانی ها اولا دنبال این هستیم که کمتر هزینه کنیم حتی اگر جنس بد گیرمون بیاد ٬‌دوم فکر می کنیم بقیه خ....ر نمی فهمن ما چی کار کردیم.چیزی که من دیدم توی قالب های ایرانی خیلی ترسناک بود به شما چند تا روش تست رو پیشنهاد می کنم که قالبتون رو بتونید تست کنید:روش اول برای تست قالب وردپرس:توی فایل wp-config.php وردپرس مقدار WP_DEBUG رو روی true بزارید و صفحات سایت و ادمین خودتون رو چک کنید (البته اگر شانس بیارید و طراح شما وجدان کاری داشته باشه و سورس خوبی نوشته باشه و سایتتون سفید یا پر خطا نشه )روش دوم برای تست قالب وردپرس:فایل هایی که توی قالب هست رو مستقیم صدا بزنید:مثلا فایل اصلی قالب index.php هست شما به این صورت صدا بزنید:http://yoursite.com/wp-content/themes/yourtheme/index.phpوقتی این ادرس رو بزنید باید بهتون خطای دسترسی بده فقط مقادیر رو درست پر کنید که ادرس درست رو پیدا کنهاگر خطای دسترسی به شما نداد و صفحه سفید اومد معلومه که برنامه نویس شما یا برای خطا کد نزده که اما سورس رو بسته که ایرادی نداره یا حالت بد اصلا صدا زدن مستقیم رو کنترل نکرده و هکر خیلی راحت میتونه با پاس دادن ۴ تا کد ساده سایت شما رو زیر رو کنهخب راه حل مشکل در صورت اتفاق دوم چیه ؟ اگر برنامه نویسی بلد باشید باید ببنیدینش اگر هم بلد نیستید باید قید قالب رو بزنید یا به طراحش بگید مشکل رو حل کنهمن خودم همیشه توی جوملا و وردپرس میام می بندم اینطوری:<?phpif ( ! defined( 'ABSPATH' ) ) exit;?>اه چقدر ساده بود ٬‌بله معما چون حل گشت اسان می شود ٬‌این خط ساده در بالا همه فایل های php در وردپرس الزامی هست تا هکر ها نتونن شیطنت کنند اما متاسفانه بخش اعظمی از طراحان وردپرس واقعا همین رو نمی دونن ٬ اما شما الان جز اون دسته شدید که میدونن.من قرار نیست امن کردن وردپرس رو اموزش بدم من جوملا کاریم که وردپرس کارهای ایرانی قالب هاشو دوست دارن پس برای وردپرس قالب اصولی با روش جوملا میزنم شاید که رستگار شوید!خوشحال میشم اگر چیزی برای تکمیل موضوع به ذهنتون رسید کامنت کنید.اینجا زن و بچه نشسته لطفا هر چیزی رو ننویسید٬‌ممنون :دی