مقدمه فصل
به اولین فصل از محتوای آموزشی "توسعهی حرفهای وردپرس" خوش آمدید! 🎉
قبل از اینکه وارد کدنویسی و پیچیدگیهای فنی بشیم، باید بدونیم با چه موجودی روبرو هستیم. وردپرس برای یک کاربر عادی، فقط یک ابزار ساده برای نوشتن مقاله است. اما برای ما به عنوان یک توسعهدهنده، وردپرس یک اکوسیستم غنی، یک چارچوب قدرتمند و یک دنیای بیانتهای فرصتهاست.
در این فصل، قصد داریم نگاهمان را از سطح کاربری به سطح یک توسعهدهنده ارتقا دهیم. میخواهیم بفهمیم وردپرس چطور به اینجا رسیده، چه اجزایی دارد و چطور میتواند تبدیل به ابزاری برای خلق هر نوع وبسایتی شود. پس با من همراه باشید تا این سفر هیجانانگیز را آغاز کنیم. 🚀
---
به اولین فصل از محتوای آموزشی "توسعهی حرفهای وردپرس" خوش آمدید! 🎉
قبل از اینکه وارد کدنویسی و پیچیدگیهای فنی بشیم، باید بدونیم با چه موجودی روبرو هستیم. وردپرس برای یک کاربر عادی، فقط یک ابزار ساده برای نوشتن مقاله است. اما برای ما به عنوان یک توسعهدهنده، وردپرس یک اکوسیستم غنی، یک چارچوب قدرتمند و یک دنیای بیانتهای فرصتهاست.
در این فصل، قصد داریم نگاهمان را از سطح کاربری به سطح یک توسعهدهنده ارتقا دهیم. میخواهیم بفهمیم وردپرس چطور به اینجا رسیده، چه اجزایی دارد و چطور میتواند تبدیل به ابزاری برای خلق هر نوع وبسایتی شود. پس با من همراه باشید تا این سفر هیجانانگیز را آغاز کنیم. 🚀
---
۱-۱-۱. تعریف ساده
اگر بخواهیم خیلی ساده بگوییم، وردپرس یک سیستم مدیریت محتوای متنباز (Open Source Content Management System) است که با زبان برنامهنویسی PHP نوشته شده و از پایگاه داده MySQL استفاده میکند.
اما این تعریف خشک و رسمی برای ما کافی نیست. بیایید اینطور نگاه کنیم:
وردپرس یک پلتفرم نرمافزاری است که به شما اجازه میدهد هر نوع وبسایتی را - از یک وبلاگ ساده تا یک فروشگاه بزرگ یا شبکه اجتماعی پیچیده - بدون نیاز به نوشتن همه چیز از صفر، ایجاد، مدیریت و گسترش دهید.
۱-۱-۲. نگاهی به تاریخچه 📜
داستان وردپرس از سال ۲۰۰۳ شروع شد، زمانی که دو برنامهنویس به نامهای مَت مولنوگ (Matt Mullenweg) و مایک لیتل (Mike Little) تصمیم گرفتند یک نرمافزار وبلاگنویسی به نام b2/cafelog را که دیگر توسعه نمییافت، به زندگی بازگردانند. نتیجه کارشان شد وردپرس.
از آن زمان تا امروز:
· ۲۰۰۴: انتشار نسخه ۱.۲ و معرفی سیستم پلاگینها، انقلابی در توسعهپذیری وردپرس. 🎉
· ۲۰۰۵: انتشار نسخه ۱.۵ با معرفی قالبهای استاندارد و سیستم صفحههای ایستا.
· ۲۰۱۰: انتشار نسخه ۳.۰ با معرفی انواع محتوای سفارشی (Custom Post Types) که وردپرس را از یک ابزار وبلاگنویسی به یک CMS قدرتمند تبدیل کرد. 💪
· ۲۰۱۸: انتشار نسخه ۵.۰ با معرفی ویرایشگر جدید گوتنبرگ (Gutenberg) و سیستم ویرایش بلوکی.
· امروز: وردپرس بیش از ۴۳٪ از کل وبسایتهای جهان را قدرت میبخشد و به عنوان محبوبترین CMS دنیا شناخته میشود. 🌍
۱-۱-۳. ماهیت متنباز (Open Source) ✨
یکی از مهمترین مفاهیمی که باید به عنوان یک توسعهدهنده وردپرس درک کنید، ماهیت متنباز آن است. اما متنباز یعنی چه؟
· دسترسی به کد منبع (Source Code): همه کدهای وردپرس روی مخزن رسمی آن در GitHub و WordPress.org در دسترس است. شما میتوانید بروید، کدها را ببینید، مطالعه کنید و حتی در توسعه آن مشارکت کنید.
· مجوز GPLv2: وردپرس تحت مجوز GPL (General Public License) منتشر میشود. این مجوز به شما اجازه میدهد:
· نرمافزار را برای هر هدفی اجرا کنید.
· نحوه کار نرمافزار را مطالعه و تغییر دهید.
· کپیهایی از نرمافزار توزیع کنید.
· نرمافزار را بهبود دهید و تغییرات خود را با جامعه به اشتراک بگذارید.
💡 نکته طلایی برای توسعهدهندگان: این ماهیت متنباز یعنی شما وابسته به یک شرکت یا نهاد خاص نیستید. وردپرس متعلق به همه است و توسط هزاران توسعهدهنده در سراسر جهان ساخته و نگهداری میشود. شما هم میتوانید بخشی از این جامعه باشید!
---
اگر بخواهیم خیلی ساده بگوییم، وردپرس یک سیستم مدیریت محتوای متنباز (Open Source Content Management System) است که با زبان برنامهنویسی PHP نوشته شده و از پایگاه داده MySQL استفاده میکند.
اما این تعریف خشک و رسمی برای ما کافی نیست. بیایید اینطور نگاه کنیم:
وردپرس یک پلتفرم نرمافزاری است که به شما اجازه میدهد هر نوع وبسایتی را - از یک وبلاگ ساده تا یک فروشگاه بزرگ یا شبکه اجتماعی پیچیده - بدون نیاز به نوشتن همه چیز از صفر، ایجاد، مدیریت و گسترش دهید.
۱-۱-۲. نگاهی به تاریخچه 📜
داستان وردپرس از سال ۲۰۰۳ شروع شد، زمانی که دو برنامهنویس به نامهای مَت مولنوگ (Matt Mullenweg) و مایک لیتل (Mike Little) تصمیم گرفتند یک نرمافزار وبلاگنویسی به نام b2/cafelog را که دیگر توسعه نمییافت، به زندگی بازگردانند. نتیجه کارشان شد وردپرس.
از آن زمان تا امروز:
· ۲۰۰۴: انتشار نسخه ۱.۲ و معرفی سیستم پلاگینها، انقلابی در توسعهپذیری وردپرس. 🎉
· ۲۰۰۵: انتشار نسخه ۱.۵ با معرفی قالبهای استاندارد و سیستم صفحههای ایستا.
· ۲۰۱۰: انتشار نسخه ۳.۰ با معرفی انواع محتوای سفارشی (Custom Post Types) که وردپرس را از یک ابزار وبلاگنویسی به یک CMS قدرتمند تبدیل کرد. 💪
· ۲۰۱۸: انتشار نسخه ۵.۰ با معرفی ویرایشگر جدید گوتنبرگ (Gutenberg) و سیستم ویرایش بلوکی.
· امروز: وردپرس بیش از ۴۳٪ از کل وبسایتهای جهان را قدرت میبخشد و به عنوان محبوبترین CMS دنیا شناخته میشود. 🌍
۱-۱-۳. ماهیت متنباز (Open Source) ✨
یکی از مهمترین مفاهیمی که باید به عنوان یک توسعهدهنده وردپرس درک کنید، ماهیت متنباز آن است. اما متنباز یعنی چه؟
· دسترسی به کد منبع (Source Code): همه کدهای وردپرس روی مخزن رسمی آن در GitHub و WordPress.org در دسترس است. شما میتوانید بروید، کدها را ببینید، مطالعه کنید و حتی در توسعه آن مشارکت کنید.
· مجوز GPLv2: وردپرس تحت مجوز GPL (General Public License) منتشر میشود. این مجوز به شما اجازه میدهد:
· نرمافزار را برای هر هدفی اجرا کنید.
· نحوه کار نرمافزار را مطالعه و تغییر دهید.
· کپیهایی از نرمافزار توزیع کنید.
· نرمافزار را بهبود دهید و تغییرات خود را با جامعه به اشتراک بگذارید.
💡 نکته طلایی برای توسعهدهندگان: این ماهیت متنباز یعنی شما وابسته به یک شرکت یا نهاد خاص نیستید. وردپرس متعلق به همه است و توسط هزاران توسعهدهنده در سراسر جهان ساخته و نگهداری میشود. شما هم میتوانید بخشی از این جامعه باشید!
---
وردپرس فقط یک نرمافزار نیست؛ یک اکوسیستم کامل است. اکوسیستم یعنی مجموعهای از اجزا، افراد و منابع که در کنار هم این دنیا را میسازند. بیایید نگاهی به مهمترین بخشهای این اکوسیستم بیندازیم:
۱-۲-۱. جامعه (Community) 👥
جامعه وردپرس بزرگترین دارایی این پلتفرم است. میلیونها توسعهدهنده، طراح، تولیدکننده محتوا، مترجم و کاربر در سراسر جهان بخشی از این جامعه هستند. فعالیتهای این جامعه شامل:
· WordCampها: کنفرانسهای رسمی وردپرس که در شهرهای مختلف دنیا برگزار میشود.
· جلسات محلی (Meetups): دورهمیهای کوچک و غیررسمی علاقهمندان وردپرس.
· انجمنهای پشتیبانی (Support Forums): جایی که کاربران به یکدیگر کمک میکنند.
· مشارکت در توسعه (Core Contributions): توسعهدهندگانی که روی بهبود هسته وردپرس کار میکنند.
۱-۲-۲. مستندات (Documentation) 📚
یک توسعهدهنده بدون مستندات خوب، مثل یک ملوان بدون قطبنماست. خوشبختانه وردپرس مستندات فوقالعادهای دارد:
· WordPress Codex: مستندات قدیمی و سنتی وردپرس (هرچند هنوز مفید است).
· WordPress Developer Resources: منبع اصلی و رسمی برای توسعهدهندگان، شامل:
· Plugin Handbook: راهنمای کامل پلاگیننویسی.
· Theme Handbook: راهنمای کامل قالبسازی.
· Block Editor Handbook: راهنمای توسعه برای ویرایشگر گوتنبرگ.
· REST API Handbook: مستندات کامل API وردپرس.
· WP-CLI Handbook: راهنمای استفاده از ابزار خط فرمان وردپرس.
🔍 توصیه حرفهای: به جای جستجوی تصادفی در گوگل، عادت کنید اول به مستندات رسمی (developer.wordpress.org) مراجعه کنید.
۱-۲-۳. مخازن (Repositories) 🗂️
وردپرس دو مخزن اصلی دارد که هر توسعهدهندهای باید با آنها آشنا باشد:
WordPress.org (مخزن خودمختار) 🆓
· محل اصلی نرمافزار وردپرس: جایی که میتوانید آخرین نسخه وردپرس را دانلود کنید.
· مخزن پلاگینها: بیش از ۶۰,۰۰۰ پلاگین رایگان که میتوانید نصب و استفاده کنید.
· مخزن قالبها: هزاران قالب رایگان.
· نقطه قوت: همه چیز رایگان و متنباز است.
· شما کی هستید؟: اگر میخواهید پلاگین یا قالب رایگانی منتشر کنید، باید به اینجا بیایید.
WordPress.com (سرویس تجاری) 💼
· پلتفرم میزبانی شده: نیازی به خرید هاست جداگانه و نصب وردپرس ندارید.
· سرویسهای ارزش افزوده: امکاناتی مانند پشتیبانگیری خودکار، امنیت پیشرفته، CDN و...
· نقاط قوت: راهاندازی آسان، امنیت و نگهداری توسط Automattic.
· نقاط ضعف: محدودیت در نصب پلاگینها و قالبهای دلخواه (مگر در پلنهای بالاتر).
· شما کی هستید؟: اگر کاربر عادی هستید و میخواهید سریع وبلاگ بزنید یا صاحب کسبوکاری هستید که میخواهید همه چیز را به متخصصان بسپارید.
⚡ نکته مهم: به عنوان توسعهدهنده، شما تقریباً همیشه با WordPress.org سروکار دارید. وردپرس داتکام یک سرویس تجاری است و امکانات توسعهای آن محدود است.
---
۱-۲-۱. جامعه (Community) 👥
جامعه وردپرس بزرگترین دارایی این پلتفرم است. میلیونها توسعهدهنده، طراح، تولیدکننده محتوا، مترجم و کاربر در سراسر جهان بخشی از این جامعه هستند. فعالیتهای این جامعه شامل:
· WordCampها: کنفرانسهای رسمی وردپرس که در شهرهای مختلف دنیا برگزار میشود.
· جلسات محلی (Meetups): دورهمیهای کوچک و غیررسمی علاقهمندان وردپرس.
· انجمنهای پشتیبانی (Support Forums): جایی که کاربران به یکدیگر کمک میکنند.
· مشارکت در توسعه (Core Contributions): توسعهدهندگانی که روی بهبود هسته وردپرس کار میکنند.
۱-۲-۲. مستندات (Documentation) 📚
یک توسعهدهنده بدون مستندات خوب، مثل یک ملوان بدون قطبنماست. خوشبختانه وردپرس مستندات فوقالعادهای دارد:
· WordPress Codex: مستندات قدیمی و سنتی وردپرس (هرچند هنوز مفید است).
· WordPress Developer Resources: منبع اصلی و رسمی برای توسعهدهندگان، شامل:
· Plugin Handbook: راهنمای کامل پلاگیننویسی.
· Theme Handbook: راهنمای کامل قالبسازی.
· Block Editor Handbook: راهنمای توسعه برای ویرایشگر گوتنبرگ.
· REST API Handbook: مستندات کامل API وردپرس.
· WP-CLI Handbook: راهنمای استفاده از ابزار خط فرمان وردپرس.
🔍 توصیه حرفهای: به جای جستجوی تصادفی در گوگل، عادت کنید اول به مستندات رسمی (developer.wordpress.org) مراجعه کنید.
۱-۲-۳. مخازن (Repositories) 🗂️
وردپرس دو مخزن اصلی دارد که هر توسعهدهندهای باید با آنها آشنا باشد:
WordPress.org (مخزن خودمختار) 🆓
· محل اصلی نرمافزار وردپرس: جایی که میتوانید آخرین نسخه وردپرس را دانلود کنید.
· مخزن پلاگینها: بیش از ۶۰,۰۰۰ پلاگین رایگان که میتوانید نصب و استفاده کنید.
· مخزن قالبها: هزاران قالب رایگان.
· نقطه قوت: همه چیز رایگان و متنباز است.
· شما کی هستید؟: اگر میخواهید پلاگین یا قالب رایگانی منتشر کنید، باید به اینجا بیایید.
WordPress.com (سرویس تجاری) 💼
· پلتفرم میزبانی شده: نیازی به خرید هاست جداگانه و نصب وردپرس ندارید.
· سرویسهای ارزش افزوده: امکاناتی مانند پشتیبانگیری خودکار، امنیت پیشرفته، CDN و...
· نقاط قوت: راهاندازی آسان، امنیت و نگهداری توسط Automattic.
· نقاط ضعف: محدودیت در نصب پلاگینها و قالبهای دلخواه (مگر در پلنهای بالاتر).
· شما کی هستید؟: اگر کاربر عادی هستید و میخواهید سریع وبلاگ بزنید یا صاحب کسبوکاری هستید که میخواهید همه چیز را به متخصصان بسپارید.
⚡ نکته مهم: به عنوان توسعهدهنده، شما تقریباً همیشه با WordPress.org سروکار دارید. وردپرس داتکام یک سرویس تجاری است و امکانات توسعهای آن محدود است.
---
یکی از زیباترین جنبههای وردپرس، معماری ماژولار آن است. وردپرس از چهار لایه اصلی تشکیل شده که هر کدام وظیفه مشخصی دارند و به زیبایی با هم تعامل میکنند. درک این ساختار چهارلایهای برای هر توسعهدهندهای ضروری است:
۱-۳-۱. لایه اول: هسته (Core) 🧠
هسته وردپرس شامل تمام فایلهای اصلی است که هنگام دانلود وردپرس از WordPress.org دریافت میکنید. این لایه شامل:
· توابع پایه برای مدیریت محتوا، کاربران، نقشها و سطح دسترسیها
· کلاسهای اصلی برای کار با پایگاه داده
· سیستم هوکها (Hooks) که امکان تعامل با هسته را فراهم میکند
· توابع امنیتی برای جلوگیری از حملات رایج
· ساختار اصلی جداول پایگاه داده
🔐 اصل طلایی شماره ۱: هرگز فایلهای هسته را تغییر ندهید! هر تغییری در هسته با اولین بهروزرسانی وردپرس از بین میرود و مشکلات امنیتی و سازگاری ایجاد میکند.
۱-۳-۲. لایه دوم: پلاگین (Plugin) 🔌
پلاگینها بستههای نرمافزاری هستند که قابلیتهای جدیدی به وردپرس اضافه میکنند. پلاگینها:
· روی هسته سوار میشوند و از طریق هوکها با آن ارتباط برقرار میکنند
· میتوانند هر نوع عملکردی به سایت اضافه کنند (فرم تماس، فروشگاه، انجمن و...)
· بدون تأثیر بر محتوای اصلی سایت، قابل نصب و حذف هستند
· میتوانند توسط توسعهدهندگان شخص ثالث نوشته شوند
💡 اصل طلایی شماره ۲: پلاگینها بهترین روش برای اضافه کردن عملکرد به سایت هستند. سعی کنید منطق برنامه خود را تا حد امکان در پلاگینها قرار دهید، نه در قالب.
۱-۳-۳. لایه سوم: قالب (Theme) 🎨
قالبها ظاهر و نمایش سایت را کنترل میکنند. وظایف اصلی قالب:
· مشخص کردن چیدمان عناصر در صفحه
· تعیین استایلهای CSS و ظاهر بصری
· کنترل نحوه نمایش محتوا در دستگاههای مختلف (واکنشگرایی)
· شامل فایلهای قالب (Template Files) مانند header.php، footer.php، single.php و...
🎯 اصل طلایی شماره ۳: قالب فقط باید مسئول نمایش باشد، نه منطق و عملکرد. اگر کدی برای اضافه کردن قابلیت مینویسید، بهتر است آن را در پلاگین قرار دهید.
۱-۳-۴. لایه چهارم: میزبانی (Hosting) 🌐
لایه میزبانی شامل زیرساخت فیزیکی و نرمافزاری است که وردپرس روی آن اجرا میشود:
· سرور: سختافزاری که سایت روی آن قرار دارد
· وب سرور: نرمافزاری مانند Apache یا Nginx که درخواستهای HTTP را پردازش میکند
· PHP: موتور اجرای کدهای PHP وردپرس
· MySQL/MariaDB: پایگاه داده برای ذخیره محتوا و تنظیمات
┌─────────────────────────────────┐
│ قالب (Theme) │ ← لایه نمایش
├─────────────────────────────────┤
│ پلاگین (Plugin) │ ← لایه عملکرد و منطق
├─────────────────────────────────┤
│ هسته (Core) │ ← لایه پایه و زیرساخت
├─────────────────────────────────┤
│ میزبانی (Hosting) │ ← لایه فیزیکی و سرور
└─────────────────────────────────┘
۱-۳-۱. لایه اول: هسته (Core) 🧠
هسته وردپرس شامل تمام فایلهای اصلی است که هنگام دانلود وردپرس از WordPress.org دریافت میکنید. این لایه شامل:
· توابع پایه برای مدیریت محتوا، کاربران، نقشها و سطح دسترسیها
· کلاسهای اصلی برای کار با پایگاه داده
· سیستم هوکها (Hooks) که امکان تعامل با هسته را فراهم میکند
· توابع امنیتی برای جلوگیری از حملات رایج
· ساختار اصلی جداول پایگاه داده
🔐 اصل طلایی شماره ۱: هرگز فایلهای هسته را تغییر ندهید! هر تغییری در هسته با اولین بهروزرسانی وردپرس از بین میرود و مشکلات امنیتی و سازگاری ایجاد میکند.
۱-۳-۲. لایه دوم: پلاگین (Plugin) 🔌
پلاگینها بستههای نرمافزاری هستند که قابلیتهای جدیدی به وردپرس اضافه میکنند. پلاگینها:
· روی هسته سوار میشوند و از طریق هوکها با آن ارتباط برقرار میکنند
· میتوانند هر نوع عملکردی به سایت اضافه کنند (فرم تماس، فروشگاه، انجمن و...)
· بدون تأثیر بر محتوای اصلی سایت، قابل نصب و حذف هستند
· میتوانند توسط توسعهدهندگان شخص ثالث نوشته شوند
💡 اصل طلایی شماره ۲: پلاگینها بهترین روش برای اضافه کردن عملکرد به سایت هستند. سعی کنید منطق برنامه خود را تا حد امکان در پلاگینها قرار دهید، نه در قالب.
۱-۳-۳. لایه سوم: قالب (Theme) 🎨
قالبها ظاهر و نمایش سایت را کنترل میکنند. وظایف اصلی قالب:
· مشخص کردن چیدمان عناصر در صفحه
· تعیین استایلهای CSS و ظاهر بصری
· کنترل نحوه نمایش محتوا در دستگاههای مختلف (واکنشگرایی)
· شامل فایلهای قالب (Template Files) مانند header.php، footer.php، single.php و...
🎯 اصل طلایی شماره ۳: قالب فقط باید مسئول نمایش باشد، نه منطق و عملکرد. اگر کدی برای اضافه کردن قابلیت مینویسید، بهتر است آن را در پلاگین قرار دهید.
۱-۳-۴. لایه چهارم: میزبانی (Hosting) 🌐
لایه میزبانی شامل زیرساخت فیزیکی و نرمافزاری است که وردپرس روی آن اجرا میشود:
· سرور: سختافزاری که سایت روی آن قرار دارد
· وب سرور: نرمافزاری مانند Apache یا Nginx که درخواستهای HTTP را پردازش میکند
· PHP: موتور اجرای کدهای PHP وردپرس
· MySQL/MariaDB: پایگاه داده برای ذخیره محتوا و تنظیمات
حالا بیایید ببینیم این چهار لایه چطور با هم کار میکنند. فرض کنید کاربری وارد سایت شما میشود:
1. درخواست کاربر به سرور (میزبانی) میرسد.
2. وب سرور، درخواست را به PHP هدایت میکند.
3. هسته وردپرس بیدار میشود و:
· فایل wp-config.php را میخواند و به پایگاه داده متصل میشود.
· پلاگینهای فعال را بارگذاری میکند.
· قالب فعال را فراخوانی میکند.
4. پلاگینها ممکن است دادهها را تغییر دهند یا قابلیتهایی اضافه کنند.
5. قالب تصمیم میگیرد محتوا چطور نمایش داده شود.
6. صفحه نهایی به مرورگر کاربر فرستاده میشود.
1. درخواست کاربر به سرور (میزبانی) میرسد.
2. وب سرور، درخواست را به PHP هدایت میکند.
3. هسته وردپرس بیدار میشود و:
· فایل wp-config.php را میخواند و به پایگاه داده متصل میشود.
· پلاگینهای فعال را بارگذاری میکند.
· قالب فعال را فراخوانی میکند.
4. پلاگینها ممکن است دادهها را تغییر دهند یا قابلیتهایی اضافه کنند.
5. قالب تصمیم میگیرد محتوا چطور نمایش داده شود.
6. صفحه نهایی به مرورگر کاربر فرستاده میشود.
خلاصه فصل 📝
در این فصل یاد گرفتیم:
✅ وردپرس یک سیستم مدیریت محتوای متنباز است که از سال ۲۰۰۳ تا امروز تکامل یافته است.
✅ماهیت متنباز وردپرس به ما امکان مطالعه، تغییر و مشارکت در توسعه آن را میدهد.
✅اکوسیستم وردپرس شامل جامعه بزرگ، مستندات غنی و دو مخزن اصلی (org و com) است.
✅معماری وردپرس از چهار لایه تشکیل شده: هسته، پلاگین، قالب و میزبانی.
✅هر لایه وظیفه مشخصی دارد و تعامل صحیح بین آنها باعث ایجاد یک سایت قدرتمند و پایدار میشود.
✅سه اصل طلایی: هرگز هسته را تغییر نده، عملکرد را در پلاگینها قرار بده، قالب را فقط برای نمایش استفاده کن.
---
تمرینهای فصل 🏋️♂️
برای تثبیت یادگیری، این تمرینها را انجام دهید:
1. مقایسه: به سایت WordPress.org و WordPress.com بروید و حداقل ۵ تفاوت مهم بین این دو پلتفرم را یادداشت کنید.
2. مطالعه: به مستندات رسمی وردپرس (developer.wordpress.org) سر بزنید و با ساختار آن آشنا شوید. سعی کنید Plugin Handbook و Theme Handbook را پیدا کنید.
3. تفکر: به یک وبسایت وردپرسی که میشناسید فکر کنید. سعی کنید تشخیص دهید کدام بخشها توسط هسته، کدام توسط قالب و کدام توسط پلاگینها ارائه شده است.
4. پژوهش: درباره تاریخچه وردپرس و نسخههای مهم آن مطالعه بیشتری کنید. مثلاً بدانید هر نسخه از وردپرس به نام یک نوازنده مشهور جاز نامگذاری شده است!
---
در فصل دوم، به ساختار فایلها و پوشههای وردپرس خواهیم پرداخت و میبینیم هر فایل در کجای این معماری عظیم قرار دارد و چه کاری انجام میدهد. با ما همراه باشید! 🗂️
در این فصل یاد گرفتیم:
✅ وردپرس یک سیستم مدیریت محتوای متنباز است که از سال ۲۰۰۳ تا امروز تکامل یافته است.
✅ماهیت متنباز وردپرس به ما امکان مطالعه، تغییر و مشارکت در توسعه آن را میدهد.
✅اکوسیستم وردپرس شامل جامعه بزرگ، مستندات غنی و دو مخزن اصلی (org و com) است.
✅معماری وردپرس از چهار لایه تشکیل شده: هسته، پلاگین، قالب و میزبانی.
✅هر لایه وظیفه مشخصی دارد و تعامل صحیح بین آنها باعث ایجاد یک سایت قدرتمند و پایدار میشود.
✅سه اصل طلایی: هرگز هسته را تغییر نده، عملکرد را در پلاگینها قرار بده، قالب را فقط برای نمایش استفاده کن.
---
تمرینهای فصل 🏋️♂️
برای تثبیت یادگیری، این تمرینها را انجام دهید:
1. مقایسه: به سایت WordPress.org و WordPress.com بروید و حداقل ۵ تفاوت مهم بین این دو پلتفرم را یادداشت کنید.
2. مطالعه: به مستندات رسمی وردپرس (developer.wordpress.org) سر بزنید و با ساختار آن آشنا شوید. سعی کنید Plugin Handbook و Theme Handbook را پیدا کنید.
3. تفکر: به یک وبسایت وردپرسی که میشناسید فکر کنید. سعی کنید تشخیص دهید کدام بخشها توسط هسته، کدام توسط قالب و کدام توسط پلاگینها ارائه شده است.
4. پژوهش: درباره تاریخچه وردپرس و نسخههای مهم آن مطالعه بیشتری کنید. مثلاً بدانید هر نسخه از وردپرس به نام یک نوازنده مشهور جاز نامگذاری شده است!
---
در فصل دوم، به ساختار فایلها و پوشههای وردپرس خواهیم پرداخت و میبینیم هر فایل در کجای این معماری عظیم قرار دارد و چه کاری انجام میدهد. با ما همراه باشید! 🗂️
فصل ۲: آشنایی با ساختار فایلها و پوشهها 📁
WordPress File Structure
---
WordPress File Structure
---
مقدمه فصل
سلام دوباره! 👋 در فصل قبل، با دیدگاه کلی نسبت به وردپرس آشنا شدیم. حالا وقت آن رسیده که آستینها را بالا بزنیم و وارد جزئیات شویم. اگر وردپرس را به یک کارخانه تشبیه کنیم، ساختار فایلهای آن مثل نقشهی این کارخانه است. برای اینکه بتوانیم در این کارخانه به خوبی کار کنیم، باید بدونیم هر ابزار و قطعه کجا قرار داره. 🏭
در این فصل، قدم به قدم در پوشههای وردپرس گردش میکنیم، با فایلهای مهم آشنا میشویم و میفهمیم هر کدام چه نقشی در اجرای یک وبسایت پویا دارند. این دانش پایهای، به شما کمک میکند تا در آینده به راحتی مشکلات را عیبیابی کنید و کدهای تمیز و استانداردی بنویسید.
پس کمربندها را ببندید، میخواهیم وارد ساختار فایلهای وردپرس بشویم! 🚶♂️💻
---
سلام دوباره! 👋 در فصل قبل، با دیدگاه کلی نسبت به وردپرس آشنا شدیم. حالا وقت آن رسیده که آستینها را بالا بزنیم و وارد جزئیات شویم. اگر وردپرس را به یک کارخانه تشبیه کنیم، ساختار فایلهای آن مثل نقشهی این کارخانه است. برای اینکه بتوانیم در این کارخانه به خوبی کار کنیم، باید بدونیم هر ابزار و قطعه کجا قرار داره. 🏭
در این فصل، قدم به قدم در پوشههای وردپرس گردش میکنیم، با فایلهای مهم آشنا میشویم و میفهمیم هر کدام چه نقشی در اجرای یک وبسایت پویا دارند. این دانش پایهای، به شما کمک میکند تا در آینده به راحتی مشکلات را عیبیابی کنید و کدهای تمیز و استانداردی بنویسید.
پس کمربندها را ببندید، میخواهیم وارد ساختار فایلهای وردپرس بشویم! 🚶♂️💻
---
وقتی برای اولین بار به پوشه اصلی وردپرس نگاه میکنید، ممکن است کمی گیجکننده به نظر برسد. اما نگران نباشید! این ساختار در طول سالها به بلوغ رسیده و کاملاً منطقی طراحی شده است. بیایید با مهمترین پوشهها و فایلهای ریشه آشنا شویم:
اما نگران این همه فایل نباشید! به عنوان توسعهدهنده، بیشترین تعامل شما با سه پوشه اصلی wp-admin، wp-includes و به خصوص wp-content خواهد بود. بیایید هر کدام را با دقت بررسی کنیم. 🔍
---
wordpress/ (ریشه سایت)
│
├── wp-admin/ ← پوشه بخش مدیریت
├── wp-content/ ← پوشه محتوا (قلب توسعه)
├── wp-includes/ ← پوشه هسته و کتابخانهها
│
├── wp-config.php ← فایل پیکربندی اصلی
├── .htaccess ← فایل تنظیمات سرور آپاچی
├── index.php ← فایل ورودی اصلی
├── wp-load.php ← بارگذارنده هسته
├── wp-blog-header.php ← هدر کننده وردپرس
├── wp-signup.php ← ثبتنام چندسایته
├── wp-activate.php ← فعالسازی حساب
├── xmlrpc.php ← سرویس قدیمی XML-RPC
├── wp-cron.php ← زمانبند وظایف
├── wp-links-opml.php ← لینکهای XML
├── wp-mail.php ← پست از طریق ایمیل
├── wp-settings.php ← تنظیمات اولیه
├── wp-trackback.php ← سرویس قدیمی trackback
├── readme.html ← فایل راهنمای نصب
└── license.txt ← مجوز نرمافزار
اما نگران این همه فایل نباشید! به عنوان توسعهدهنده، بیشترین تعامل شما با سه پوشه اصلی wp-admin، wp-includes و به خصوص wp-content خواهد بود. بیایید هر کدام را با دقت بررسی کنیم. 🔍
---
۲-۲-۱. پوشه wp-admin (دنیای مدیریت) 👨💼
این پوشه محل زندگی فایلهای بخش مدیریت وردپرس است. هر وقت وارد پیشخوان وردپرس میشوید (your-site.com/wp-admin)، درخواست شما به فایلهای این پوشه هدایت میشود.
محتوای اصلی:
· فایلهای مدیریتی: فایلهایی مثل post.php، edit.php، users.php که هر کدام صفحه خاصی را مدیریت میکنند.
· فایلهای جاوااسکریپت و CSS: استایلها و اسکریپتهای مخصوص بخش ادمین.
· تصاویر و منابع گرافیکی: آیکونها و تصاویر استفاده شده در پیشخوان.
· فایلهای Ajax: پردازش درخواستهای Ajax در بخش مدیریت.
⚠️ هشدار مهم: این پوشه متعلق به هسته وردپرس است و هرگز نباید فایلهای آن را تغییر دهید. اگر نیاز به تغییر ظاهر یا عملکرد بخش مدیریت دارید، از هوکهای مخصوص (مثل admin_enqueue_scripts یا admin_menu) در پلاگین خود استفاده کنید.
چند فایل مهم در wp-admin:
· admin-ajax.php: قلب پردازش درخواستهای Ajax در وردپرس (بسیار مهم!)
· admin-footer.php, admin-header.php: بخشهای سربرگ و پابرگ صفحات مدیریت
· admin-functions.php: توابع کمکی مخصوص ادمین
· admin-post.php: پردازش درخواستهای POST از بخش مدیریت
این پوشه محل زندگی فایلهای بخش مدیریت وردپرس است. هر وقت وارد پیشخوان وردپرس میشوید (your-site.com/wp-admin)، درخواست شما به فایلهای این پوشه هدایت میشود.
محتوای اصلی:
· فایلهای مدیریتی: فایلهایی مثل post.php، edit.php، users.php که هر کدام صفحه خاصی را مدیریت میکنند.
· فایلهای جاوااسکریپت و CSS: استایلها و اسکریپتهای مخصوص بخش ادمین.
· تصاویر و منابع گرافیکی: آیکونها و تصاویر استفاده شده در پیشخوان.
· فایلهای Ajax: پردازش درخواستهای Ajax در بخش مدیریت.
⚠️ هشدار مهم: این پوشه متعلق به هسته وردپرس است و هرگز نباید فایلهای آن را تغییر دهید. اگر نیاز به تغییر ظاهر یا عملکرد بخش مدیریت دارید، از هوکهای مخصوص (مثل admin_enqueue_scripts یا admin_menu) در پلاگین خود استفاده کنید.
چند فایل مهم در wp-admin:
· admin-ajax.php: قلب پردازش درخواستهای Ajax در وردپرس (بسیار مهم!)
· admin-footer.php, admin-header.php: بخشهای سربرگ و پابرگ صفحات مدیریت
· admin-functions.php: توابع کمکی مخصوص ادمین
· admin-post.php: پردازش درخواستهای POST از بخش مدیریت
۲-۲-۲. پوشه wp-includes (موتورخانه وردپرس) ⚙️
این پوشه را میتوان موتورخانه وردپرس نامید. تمام توابع، کلاسها و کتابخانههای اصلی که هسته وردپرس را میسازند، اینجا قرار دارند.
محتوای اصلی:
· توابع هسته: فایلهایی مثل functions.php، post.php، user.php و...
· کلاسهای اصلی: کلاسهایی مثل WP_Query، WP_User، wpdb و...
· کتابخانههای شخص ثالث: کتابخانههای معروفی که وردپرس از آنها استفاده میکند.
· فایلهای بینالمللیسازی: پوشههای زبان و ترجمه.
نگاهی به داخل wp-includes:
فایل/پوشه کاربرد
wp-db.php کلاس مدیریت پایگاه داده ($wpdb)
class-wp-query.php کلاس اصلی کوئریگیری از پستها
post.php, post-template.php توابع مربوط به پستها
comment.php, comment-template.php توابع مربوط به نظرات
user.php, author-template.php توابع مربوط به کاربران
rest-api/ پوشه مخصوص REST API
block-patterns/ الگوهای بلوکی پیشفرض
SimplePie/ کتابخانه فیدخوان
Text/ کتابخانههای پردازش متن
🔬 نکته تحقیقاتی: به عنوان یک توسعهدهنده حرفهای، گاهی اوقات لازم است به این پوشه سر بزنید و نحوه کار توابع هسته را مطالعه کنید. این کار درک عمیقتری از وردپرس به شما میدهد.
این پوشه را میتوان موتورخانه وردپرس نامید. تمام توابع، کلاسها و کتابخانههای اصلی که هسته وردپرس را میسازند، اینجا قرار دارند.
محتوای اصلی:
· توابع هسته: فایلهایی مثل functions.php، post.php، user.php و...
· کلاسهای اصلی: کلاسهایی مثل WP_Query، WP_User، wpdb و...
· کتابخانههای شخص ثالث: کتابخانههای معروفی که وردپرس از آنها استفاده میکند.
· فایلهای بینالمللیسازی: پوشههای زبان و ترجمه.
نگاهی به داخل wp-includes:
فایل/پوشه کاربرد
wp-db.php کلاس مدیریت پایگاه داده ($wpdb)
class-wp-query.php کلاس اصلی کوئریگیری از پستها
post.php, post-template.php توابع مربوط به پستها
comment.php, comment-template.php توابع مربوط به نظرات
user.php, author-template.php توابع مربوط به کاربران
rest-api/ پوشه مخصوص REST API
block-patterns/ الگوهای بلوکی پیشفرض
SimplePie/ کتابخانه فیدخوان
Text/ کتابخانههای پردازش متن
🔬 نکته تحقیقاتی: به عنوان یک توسعهدهنده حرفهای، گاهی اوقات لازم است به این پوشه سر بزنید و نحوه کار توابع هسته را مطالعه کنید. این کار درک عمیقتری از وردپرس به شما میدهد.
۲-۲-۳. پوشه wp-content (قلب توسعه) 💖
و بالاخره میرسیم به مهمترین پوشه برای ما توسعهدهندگان! اینجا جایی است که خلاقیت شما جریان پیدا میکند. تمام کارهایی که به عنوان توسعهدهنده انجام میدهید (قالبسازی، پلاگیننویسی، آپلود فایلها) در این پوشه اتفاق میافتد.
ساختار اولیه wp-content:
در بخش بعدی، هر کدام از این پوشهها را به تفصیل بررسی خواهیم کرد. بیایید عمیقتر برویم... 🏊♂️
---
و بالاخره میرسیم به مهمترین پوشه برای ما توسعهدهندگان! اینجا جایی است که خلاقیت شما جریان پیدا میکند. تمام کارهایی که به عنوان توسعهدهنده انجام میدهید (قالبسازی، پلاگیننویسی، آپلود فایلها) در این پوشه اتفاق میافتد.
ساختار اولیه wp-content:
wp-content/
│
├── themes/ ← پوشه قالبها
│ ├── twentytwentythree/
│ ├── twentytwentytwo/
│ └── your-theme/
│
├── plugins/ ← پوشه پلاگینها
│ ├── akismet/
│ ├── hello-dolly/
│ └── your-plugin/
│
├── uploads/ ← پوشه فایلهای آپلودی (ایجاد میشود)
│ ├── 2023/
│ ├── 2024/
│ └── 2025/
│
├── mu-plugins/ ← پلاگینهای اجباری (Must-Use Plugins)
│
├── languages/ ← فایلهای ترجمه
│
└── upgrade/ ← فایلهای موقت بهروزرسانی
در بخش بعدی، هر کدام از این پوشهها را به تفصیل بررسی خواهیم کرد. بیایید عمیقتر برویم... 🏊♂️
---
۲-۳-۱. پوشه themes (دنیای قالبها) 🎨
پوشه themes محل زندگی تمام قالبهای نصب شده روی سایت شماست. هر قالب یک پوشه مجزا دارد که شامل فایلهای قالب، استایلها، جاوااسکریپت و منابع تصویری است.
ساختار یک قالب معمولی:
🎯 نکته مهم: حداقل فایلهای مورد نیاز برای یک قالب معتبر، فقط style.css و index.php است. اما برای یک قالب حرفهای، به فایلهای بیشتری نیاز دارید.
فایل style.css: این فایل علاوه بر استایلها، شامل هدر مخصوص قالب است که اطلاعاتی مانند نام قالب، نویسنده، نسخه و توضیحات را به وردپرس میدهد:
پوشه themes محل زندگی تمام قالبهای نصب شده روی سایت شماست. هر قالب یک پوشه مجزا دارد که شامل فایلهای قالب، استایلها، جاوااسکریپت و منابع تصویری است.
ساختار یک قالب معمولی:
your-theme/
│
├── style.css ← فایل استایل اصلی و اطلاعات قالب (الزامی)
├── index.php ← فایل اصلی قالب (الزامی)
├── functions.php ← توابع قالب (اختیاری ولی بسیار مهم)
├── header.php ← بخش سربرگ
├── footer.php ← بخش پابرگ
├── sidebar.php ← نوار کناری
├── single.php ← نمایش یک نوشته
├── page.php ← نمایش یک برگه
├── archive.php ← صفحه آرشیو
├── category.php ← صفحه دستهبندی
├── tag.php ← صفحه برچسب
├── 404.php ← صفحه خطا
├── search.php ← صفحه جستجو
├── screenshot.png ← تصویر پیشنمایش قالب
│
├── assets/ ← پوشه منابع (دلخواه)
│ ├── css/
│ ├── js/
│ └── images/
│
├── template-parts/ ← تکههای قالب (دلخواه)
│ ├── content.php
│ ├── content-single.php
│ └── content-page.php
│
└── inc/ ← فایلهای شامل شونده (دلخواه)
├── customizer.php
└── widgets.php
🎯 نکته مهم: حداقل فایلهای مورد نیاز برای یک قالب معتبر، فقط style.css و index.php است. اما برای یک قالب حرفهای، به فایلهای بیشتری نیاز دارید.
فایل style.css: این فایل علاوه بر استایلها، شامل هدر مخصوص قالب است که اطلاعاتی مانند نام قالب، نویسنده، نسخه و توضیحات را به وردپرس میدهد:
/*
Theme Name: نام قالب شما
Theme URI: https://example.com
Author: نام نویسنده
Author URI: https://example.com
Description: توضیحات کوتاه درباره قالب
Version: 1.0.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: متن-دامین
Tags: برچسب،های،قالب
*/
۲-۳-۲. پوشه plugins (دنیای پلاگینها) 🔌
پوشه plugins محل نصب همه پلاگینهای سایت است. هر پلاگین معمولاً در یک پوشه مجزا قرار دارد، اگرچه پلاگینهای تکفایلی هم وجود دارند.
ساختار یک پلاگین معمولی:
فایل اصلی پلاگین: مشابه قالبها، فایل اصلی پلاگین هم یک هدر مخصوص دارد:
پوشه plugins محل نصب همه پلاگینهای سایت است. هر پلاگین معمولاً در یک پوشه مجزا قرار دارد، اگرچه پلاگینهای تکفایلی هم وجود دارند.
ساختار یک پلاگین معمولی:
your-plugin/
│
├── your-plugin.php ← فایل اصلی پلاگین (الزامی)
├── uninstall.php ← فایل پاکسازی (اختیاری ولی توصیه شده)
│
├── includes/ ← کلاسها و توابع اصلی
│ ├── class-admin.php
│ └── class-frontend.php
│
├── public/ ← فایلهای بخش عمومی
│ ├── css/
│ └── js/
│
├── admin/ ← فایلهای بخش مدیریت
│ ├── css/
│ ├── js/
│ └── views/
│
└── languages/ ← فایلهای ترجمه
└── your-plugin-fa_IR.po
فایل اصلی پلاگین: مشابه قالبها، فایل اصلی پلاگین هم یک هدر مخصوص دارد:
<?php
/**
* Plugin Name: نام پلاگین شما
* Plugin URI: https://example.com
* Description: توضیحات کوتاه درباره پلاگین
* Version: 1.0.0
* Author: نام نویسنده
* Author URI: https://example.com
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: متن-دامین
* Domain Path: /languages
*/