طراحی افزونه وردپرس یکی از اون کارهایی هست که هر صاحب سایت وردپرسی ممکن یک روز بهش نیاز داشته باشه حالا اینکه کلا ما چرا باید افزونه طراحی بکنیم و ... را اگر مجال شد در اخر این نوشته توضیح میدم .
احتمال زیاد شما میدونید چرا افزونه میخواید و به این مرحله رسیدین که الان میخواید یک افزونه وردپرسی طراحی کنید . البته اگه خودتون حوصله ندارید طراحی کنید میتونید سفارش طراحی افزونه بدین به من براتون انجام میدم . اگر هم دوسداری خودت طراحی کنی ادامه متن را بخون .
پیش نیاز های طراحی افزونه وردپرس
ابتدا باید در مورد اچ تی ام ال و سی اس اس یک چیزایی بدونی اگر بلد نیستی برو در موردش بخون و یاد بگیر .
بعدش هم باید پی اچ پی را در حدی بلد باشی که بتونی یکی دو تا تابع تعریف کنی داخلش پردازش هایی انجام بدی و خروجی را در یک متغییر ذخیره کنی .
وردپرس را بشناسی کامل و در مورد اینکه هوک ها چی هستند اطلاعات کافی داشته باشی.
این چیزایی که نوشتم براتون کمترین نیازها بود تا بتونید یک افزونه ساده را طراحی کنید
خب میخوایم بریم سراغ شروع کار افزونه نویسی
در ابتدا نیاز داری که هدف را از نوشتن افزونه مشخص کنی خب برای اینکه ما به صورت عملی کار را انجام بدیم یک مثال میزنیم مثلا میخوایم یک افزونه طراحی کنیم که هر جا در محتوای سایت به کلمه سایت برخورد کرد ان را با کلمه وبگاه تعویض کنه .
مراحل طراحی افزونه وردپرس
پیش نیاز های اولیه را داشته باشید و یاد بگیرید.
ابتدا نیاز داریم یک فولدر ایجاد کنیم که بقیه فایل های افزونه را داخل اون بریزیم خب طبیعتا جایگاه این فولدر کجاست ؟ wp-content/plugins خب داخل این دایرکتوری از سایت وردپرس یک فولدر میسازیم و باید یک اسم براش انتخاب کنیم مثلا من اسمش را میزارم str_site
خب داخل فولدر str_site یک فایل درست میکنیم با اسم index.php
حالا اطلاعات زیر را داخلش کپی کنید تا توضیح بدم چی هست و چجوری باید تغییرش بدین
<?php /** Plugin Name: customize - iransang Plugin URI: https://abtinstar.com/ Description: این پلاگین به صورت سفارشی برای سایت ایران سنگ نوشته شده است و کاربرد دیگری ندارد Version: 1.0.0 Author: امیررضا مولودی || amirreza molodi Author URI: https://ponisha.ir/profile/amirmotahari License: GPLv2 or later */
خب به این چند خط من میگم اعلان اولیه پلاگین خیلی مهم نیست که چی بهش میگیم خب فقط سریع توضیح میدم و رد میشم خط اول پلاگین نیم یعنی نام پلاگین را وارد کنید خط دوم ادرس پلاگین ( مثلا بعدا گذاشتید توی مخزن وردپرس آدرس بدین یا اینکه ادرس سایت خودتون خط دیسکریپشن توضیحات ورژن هم که ورژن پلاگین را وارد کنید و بعدی نام نویسنده و بعدی آدرس پروفایل نویسنده و در مورد لایسنس هم مثل من وارد کنید چون این یک راهنمای سریع هست نمیتونم همه چیز را با جزئیات زیاد خیلی توضیح بدم چون طولانی میشه فقط یک راهنما هست که راه بیوفتید و بقیه مسیر را خودتون برید .
خب الان پلاگین ما درست شده فایل را ذخیره کنید داخل سیستمتون قطعا لوکال هاست و زمپ و این چیز ها رو اماده کردین وارد وردپرستون بشید قسمت افزونه ها اگه درست کار کرده باشید باید در لیست افزونه ها اسم افزونه خودتون را ببینید بعد از اینکه رویت شد اون را فعالش کنید .
خب حالا ما میخواستیم چکار کنیم ؟ میخواستیم هر جایی داخل محتوای وبلاگ ما کلمه سایت وجود داشت به وبگاه تغییر کند پس چند مرحله باید کار را انجام دهیم تا این اتفاق بیوفته
هوک ها در وردپرس چی هستند ؟
هوک ها دو دسته هستند اکشن ها و یا فیلتر ها در ادامه توضیح دادم فقط این خط را دو سه بار بخونید چون در ادامه زیاد از اصطلاح هوک اکشن و فیلتر استفاده میکنم و گاهی مثلا به جای هوک میگم اکشن یا فیلتر و ... اشتباه نکنید .
کلا هوک ها نقاطی هستند که در هسته وردپرس تعریف شده اند برای دیگر برنامه نویس ها و توسعه دهنده ها تا بتوانند از این نقاط استفاده کرده توابع خودشون را اجرا کنند یا مقادیر مختلف را بتوانند تغییر دهند برای اجرای توابع دلخواه بیشتر از اکشن ها و برای تغییر مقادیر بیشتر از فیلتر ها استفاده میشود .
خب میخواستیم چکار کنیم ؟ میخواستیم که ببینیم داخل محتوا آیا کلمه سایت وجود داره یا نه پس برای اینکه محتوای یک پست را بررسی کنیم نیاز به یک هوک داریم که بتونیم مقدار محتوا را گرفته و ویرایش کنیم .
خب من الان خودم هم حفظ نیستم که چه هوکی درد من میخوره ولی چون میخوام محتوا را تغییر بدم پس نیاز به یک فیلتر دارم داخل گوگل این عبارت را سرچ میکنم the content hook خب صفحه زیر برای من باز میشه
خب داخل این صفحه توضیح داده که این هوک چی هست و چطوری باید استفاده کنیم و ... خلاصه اش این هست که ما میتونیم قبل از اینکه محتوا برای کاربر اصلی در سایت نمایش داده شود توسط این فیلتر یا همان هوک محتوا را بگیریم در یک تابع و هر بلایی خواستیم سرش بیاریم و دوباره در همان تابع یک خروجی ارسال کنیم در واقع ورودی تابع میشود محتوایی که داخل دیتابیس هست خروجی تابع میشود آن چیزی که ما میخواهیم یک نمونه ساده کد براتون میزارم الان و باهم تکمیلش میکنیم .
در کد بالا یک فیلتر استفاده شده به نام the_content و این فیلتر تابعی را اجرا میکنه به نام filter_the_content_in_the_main_loop که ورودی تابع $content دقیقا همان محتوای داخل دیتابیس است و خروجی تابع چیزی است که ما میخواهیم ( فعلا چون تغییری ندادیم خروجی و ورودی دقیقا مثل هم هستند خب این کد را کپی کنید و بعد از زدن دو سه تا اینتر زیر همون اعلان پلاگین که به صورت کامنت بود و بسته شده بود قرار بدین
حالا نیاز داریم که در داخل متغییر $content بگردیم کلمه سایت را پیدا کنیم و با وبگاه عوض کنیم .
اینجا از یک دستور پی اچ پی استفاده میکنیم .
$content = str_replace("سایت","وبگاه",$content) ;
خب این یک دستور پی اچ پی هست ولی توضیح کلی اش این میشه که میگرده هر جا سایت ببینه با وب گاه عوض میکنه و مقدار را دوباره داخل متغییر کانتنت ذخیره میکنه
ضمنا بخاطر چپ چین و راست چین ممکن است در داخل کدی که براتون قرار دادم وبگاه و سرچ جا به جا شده باشند خودتون تست کنید .
حالا این خط پی اچ پی را به کدمون اضافه میکنیم یعنی کد نهایی ما میشود
حالا در نتیجه هنگام نمایش محتوا تمام سایت ها با وبگاه جا به جا میشوند اگر افزونه ما فعال باشد .
این فقط یک نمونه ساده بود و میتوان افزونه های بسیار پیچیده تری را نوشت برای اینکه بتوانید افزونه های خیلی پیچیده تری را در حد یک استاد بنویسید پیشنهاد میکنم موارد زیر را به ترتیب به صورت کامل یاد بگیرید البته ممکن است چند سال زمان ببرد اما من مینویسم شاید یک نفر بخواهد به ان مرتبه برسد که افزونه های نابی برای ما بنویسد .
اچ تی ام ال سی اسس و کلا یو ای را خوب یاد بگیر
یکی دو تا از فریم ورک های سی اس اس را یاد بگیر
زبان php را به صورت کامل یاد بگیر
اصول سالید solid در برنامه نویسی را یاد بگیرید
دیزاین پترن ها را یاد بگیرید
توابع وردپرس را یاد بگیرید
در مورد اکشن ها و فیلتر های معروف وردپرس بخوانید
جاوا اسکریپت را یاد بگیرید
جی کوئری را یاد بگیرید
ایجکس را یاد بگیرید
در اخر اگر یکی دوتا از زیر مجموعه های جاوا اسکریپت مثل ویو یا ناکست را هم یاد بگیرید خیلی خوب و حرفه ای میشید .
امیدوارم تونسته باشم یک کمکی کرده باشم به تازه کار ها حتما برام کامنت بزارید کامنت هاتون باعث خوشحالی من میشه و امید میگیرم که یکی این مطلب را خونده و باهاش حال کرده تا دوباره براتون اموزش های جدید ساده و سریع بزارم .