PHP در وردپرس – بخش اول: آشنایی با تابع ها در PHP
در این بخش بالاخره وقت آن رسید که یک نگاه کوتاه نیز، به کدها بزنیم و با استفاده های زبان PHP در وردپرس آشنا شویم. در واقع در این بخش نمی خواهیم تا به آموزش پی اچ پی بصورت کامل بپردازیم بلکه می خواهیم با چند مثال ساده بیان کنیم که چگونه PHP در وردپرس بکار گرفته شده و از آن استفاده می شود. از شما تقاضا دارم که حتما زمان کوتاهی را برای خواندن این بخش صرف کنید حتی با اینکه ممکن است به PHP مسلط باشید. این بخش شامل نکات کوچک و بسیار ظریفی است که در وردپرس وجود داشته و اینکه چگونه PHP در وردپرس مورد استفاده قرار می گیرد. مسلما با دانستن این نکات ریز، ادامه راه پی اچ پی در وردپرس برای شما ساده تر خواهد شد.
مقدمه
فکر می کنم مهم ترین دلیلی که باعث می شود خیلی از کدنویسان ترجیح می دهند که با وردپرس کار کنند، حس بهتری است که نسبت به آن دارند. این حس از اینجا ناشی می شود که PHP در وردپرس به گونه ای استفاده می شود که شما بیشترین لذت را از آن می برید.
در واقع زمانی که شما می خواهید یک قالب یا template بسازید، در وردپرس چیزهایی را مشاهده می کنید که تقریبا در سایر CMS موجود نیست و آن این است که بطور کامل و سرراست از PHP در وردپرس استفاده می شود. بسیاری از سیستم های دیگر برای ساخت template tag های خود از syntax های مخصوص استفاده کرده و از راه های متفاوتی نسبت به زبان PHP برای فرستادن یا همان پاس دادن اطلاعات بهره می برند، اما در مقابل همه آن ها، وردپرس جزو سیستم هایی به حساب می آید که به خوبی از این زبان در هسته و تمام اجزا خود استفاده می کند.
به نظر می رسد که یکی از دلایل پر استفاده شدن و محبوبیت وردپرس در دنیا نیز به همین عامل بر می گردد. در واقع ساده تر بودن این سیستم باعث شده که بخش بزرگی از این صنعت، از وردپرس برای کارهای خود استفاده کنند. شما با دانستن زبان PHP به راحتی می توانید داخل کدهای بخش های مختلف شده و به صورت مستقیم بسته به نیاز خودتان آن ها را دستکاری نمایید.
برای شروع طراحی قالب وردپرس یا نوشتن پلاگین وردپرس شما باید تا حدودی با زبان پی اچ پی آشنا باشید تا بتوانید به راحتی از PHP در وردپرس استفاده نمایید. در واقع در این بخش نمی خواهیم بصورت کامل به آموزش PHP بپردازیم بلکه می خواهیم با برخی کاربردهای پی اچ پی در وردپرس آشنا شویم و کاربرد آن ها را از نزدیک مشاهده کنیم.
توابع یا Function ها در وردپرس
اکثر چیزهایی که شما در وردپرس با آن سر و کار خواهید داشت خواه از template tag هایی مانند ()the_title یا ()the_content گرفته تا سایر تابع های مربوط به ساخت قالب مانند ()get_header یا ()wp_head ، همه و همه تابع هستند.
تابع ها در وردپرس به چند روش کار می کنند: یا از خروجی آن ها (مقدار return شده آن) برای استفاده در متغیرها استفاده می شود و یا از خروجی آن ها بطور مستقیم در قالب ها و سایر نقاط وردپرس برای داینامیک کردن محتواها استفاده می گردد. در مثال زیر می توانید هر دوی این دو کاربرد را بر روی یک محتوای مشابه مشاهده کنید:
در بخش اول، تابع ()get_the_title یک رشته که محتوای آن title یا عنوان می باشد را بر می گرداند و در یک متغیر ذخیره می کند، سپس از این متغیر درون کد، استفاده می شود تا عنوان در درون تگ H2 به نمایش دربیاید. در بخش دوم از تابع ()the_title استفاده شده است که به صورت مستقیم خروجی آن در داخل تگ های HTML نمایش داده شده و یا echo شده است:
/******* Sample 1 *******/ // get_the_title() returns the title to a variable for use in the PHP code $title = get_the_title(); // Do something with $title variable echo "<h2>$title</h2>"; /******* Sample 2 *******/ // whereas the_title() prints the title out straight from the function <h2><?php the_title(); ?></h2>
تفاوت استفاده در خروجی توابع که با _get شروع می شوند و توابعی که بدون آن هستند
اصولا توابعی که در وردپرس که به صورت توابع built-in بوده و با _get شروع می شوند، دارای یک خروجی به صورت return می باشند، لذا برای استفاده از آن ها در بین تگ های HTML می باید از دستور echo استفاده نمود اما توابعی که بدون آن شروع می شوند، خروجی آن ها به صورت echo شده بوده و نیازی به استفاده از echo ندارند (در واقع خروجی آن ها در داخل بدنه تابع از echo استفاده شده است). این موضوع را می توانید در دو مثال بالا به سادگی مشاهده نمایید.
بسیاری از توابع می توانند حاوی یک یا چندین پارامتر باشند، بنابراین شما می توانید انتخاب کنید که داده ها چگونه انتخاب شده و همین طور چگونه برگشت داده شوند. در وردپرس چندین راه برای فرستادن پارامترها به تابع ها وجود دارد. اولین و معمولی ترین راه، جدا کردن آن ها با کاما ( , ) از یکدیگر در روبروی نام تابع می باشد:
do_something_cool('msn', true);
روش دوم، پاس دادن یا فرستادن تنها یک آرایه به عنوان پارامتر به تابع می باشد. این روش در وردپرس فوق العاده پر کاربرد بوده و در بسیاری از موارد از آن استفاده می شود. نمونه بسیار پر استفاده آن در فرستادن آرگومان های سرچ در یک حلقه می باشد که در فصل های بعدی با جزئیات کامل شرح داده خواهد شد:
$params = Array ( 'arg1' => 'msn', 'arg2' => true ) do_something_cool($params);
روش آخر نیز فرستادن پارامترها به صورت query string به تابع می باشد. در صورتی که بخواهید ساختار کد شما اندکی منظم تر باشد، بین آن می توانید فاصله نیز بگذارید تا کد شما خوانا تر گردد. در زیر شکل هر دوی آن ها را مشاهده می کنید:
/***** query-string style *****/ do_something_cool('arg1=msn&arg2=true') /***** query-string style with a little tidier *****/ do_something_cool('arg1=msn & arg2=true')
روش آخر، یک روش جدید در PHP نیست و در وردپرس نیز در برخی از موارد از آن استفاده می شود. شما می توانید این سبک از فرستادن آرگومان ها به تابع را، بیشتر در تابع هایی ببینید که با _wp شروع می شوند یا این اینکه در توابع کوئری از سبک آخر برای پاس دادن پارامترها استفاده می شود. دلیل استفاده از این سبک پاس دادن ، وجود تعداد زیادی پارامتر می باشد که باید به یک تابع خاص پاس داده شوند. یک مثال ساده برای آن، تابع wp_list_categories می باشد که در کل شامل ۲۴ پارامتر می باشد. مسلما به جای نوشتن یک لیست بسیار بلند در داخل پرانتز جلوی تابع با پارامترهایی که همه با کاما از هم جدا شده اند ، بهتر است از فراخوانی تابع با سبک آرایه ای ( array-style ) یا سبک فراخوانی با رشته کوئری ( query-string-style ) استفاده کنیم.
در بخش دوم این مقاله به اشیا و کلاس ها در وردپرس خواهیم پرداخت و همین طور بلاک های شرطی و نحوه syntax آن ها را در وردپرس بطور کامل بررسی خواهیم کرد.
راهنما برای مطالعه بیشتر:
شما می توانید از لینک های زیر برای مطالعه بیشتر استفاده نمایید:
دوره حضوری یا انلاین برای کد نویسی وردپرس دارید اگر دارید چطور باید ثبت نام کرد
سلام به شما دوست عزیز
در حال حاضر یک دوره مقدماتی برگزار شد که البته سطح اون از لااقل ۹۰ درصد دوره هایی که در وب فارسی وجود داره، بالاتر بود و برای وارد شدن به حوزه کدنویسی وردپرس، عملا باید با این ساختار ها، آشنا باشید تا اون رو شروع کنید.
این دوره در سایت wpwebmaster.club موجود هست. دوره هایی رو که برگزار می کنیم، در اون سایت قرار می دهیم.
برای کدنویسی وردپرس، برای شش ماه دوم سال، برنامه داریم، اما زمان دقیق اون، مشخص نیست. در یکی از خبرنامه های سایت ثبت نام کنید تا به محض برگزاری، از اون مطلع گردید.
در صفحه آموزش PHP ، بخشی برای عضویت برای ارسال آخرین مقاله ها قرار داده شده. همونجا می تونید ایمیل خودتون رو وارد کنید. عموما در هنگام برگزاری دوره، ایمیل برای تمامی اعضا لیست ایمیلی، ارسال میشه.
بازم اگه سوالی بود، در خدمت شما هستم.
سپاسگزارم
عالی ممنون
از شما سپاسگزارم که وقت ارزشمند خودتون رو گذاشتید تا برای ما پیام ارسال کنید
بسیار ممنونم
سلام استاد من کمی به css , html مسلط هستم ولی برای ویرایش برگه ای مثل برگه پرداخت نیاز دارم از php استفاده کنم ولی کمی در مورد php مطالعه کردم اما اطلاعات کاربردی نبود که بتونم این کارو انجام بدم توصیه شما برای اینکه بتونم قالب سایتمو اونطور که میخوام ویرایش کنم چیه؟
سلام به شما دوست عزیز
در پایین همین کامنت ها، به صورت کامل به مسیر وردپرس کار شدن، اشاره شده است.
در صورتی که از ووکامرس برای برگه پرداخت استفاده می کنید، علاوه بر مواردی که به آن اشاره شده، باید به هوک های ووکامرس هم مسلط باشد.
مسیر وردپرس کار شدن، مسیر طولانی ای هست و نیاز به تمرین های زیادی داره. ما به زودی در یکی از سایت های جدید خودمان که راه اندازی می کنیم، این مسیر رو تقریبا باز خواهیم کرد.
در صورت نیاز، می توانید در خبرنامه ما ثبت نام کنید تا در هنگام بالا آمدن سایت، به شما اطلاع رسانی شود و بتوانید در این دوره ها شرکت کنید.
در نظر داشته باشید که این مسیر یک شبه طی نخواهد شد. در صورتی که نیاز دارید به سرعت این کار رو انجام بدید، می توانید از سایت هایی که خدمات فریلنسری ارائه می دهند (مثل پونیشا و انجام میدم) استفاده کنید تا در اسرع وقت اون رو برای شما انجام دهند.
لینک ثبت نام در خبرنامه در مقاله «آموزش شی گرایی در PHP» موجود می باشد.
با تشکر و سپاس فراوان
اقا سلطانی ، سایتتون و مطالبتون محشر هستن ، اما این کامنتی که در جواب آقای تهرانی گذاشتید ، واقعا واقعا واقعا فوق العاده بود ، خیلی حال کردم با این جوابتون ، فقط میتونم بگم خدا خیرتون بده ، همین
سلام
از لطف شما سپاسگزارم که وقت گذاشتید و برای ما پیام گذاشتید.
تنها بخشی از تجربه ای بود که در این چند سال داشتم، امیدوارم باعث بشه که اگر کسی دنبال این راه هست، زودتر به اهدافش برسه.
بازهم ممنونم که وقت با ارزش خودتون رو گذاشتید و برای ما نظرات دلگرم کننده خودتون رو فرستادید.
سلام طراح سایت هستم و به وردپرس مسلطم. من مدتهاس دنبال فراگیری php هستم و آموزشهای زیادیو بررسی کردم. دنبال آموزش php هستم که هم به زبان مسلط بشم هم بتوانم آنرا در طراحی قالب و پلاگین وروپرس استفاده کنم و خودم طراحی و تولید کنم. دیدم که اینجا چنین چیزی ارائه میشود. لطفا راهنمایی کنید که چطور میتوانم هر ۳موضوع زبان php و تولید و ویرایش قالب و پلاگین برای ورودپرس را آموزش ببینم. باتشکر
سلام آقای تهرانی عزیز
بسیار ممنونم که وقت گذاشتید و مطالب ما را در وبلاگ وبمستر وردپرس، مطالعه کردید.
من هم مثل شما، در چند سال گذشته، همواره سردرگم بودم و دنبال یک roadmap بودم واسه این چیزی که شما فرمودید. واقعیتش، هدفم از زدن این سایت هم ، همین بوده، اما متاسفانه از آنجایی که به صورت مستقل به همراه دوستانم در این سایت کار می کنیم، وقت کافی برای گذاشتن مطالب به صورت منظم نداشتیم و مجبور هستیم به خاطر گذران روزمره زندگی و مخارج اون، بیشتر وقت خودمون رو به کار در پروژه ها مشغول باشیم. البته تمام تلاشم این هست که در یک سال آینده، این مطالب کامل تر شوند و مطمئن هستم که با کمک دوستانم، حتما این اتفاق خواهد افتاد.
البته می دونم که تا این مطالب کامل شوند، شما از زمان عقب خواهید افتاد پس سعی می کنم اون چه که در این دو سال گذشته در زمینه وردپرس، تجربه کرده ام، اینجا برای شما بیان کنم تا بتونید خیلی سریع راه خودتون رو پیدا کنید.
واقعیت منبعی که بخواهید هر سه این موارد رو به طور کامل پوشش بده، اصلا وجود نداره، البته دوره متخصص وردپرس و ووکامرس سون لرن هست، که بنده با اینکه خیلی هم نیاز نداشتم، اما در اون شرکت کردم اما واقعیت قیمت داده شده در این آموزش ها، در برابر چیزی که ارائه میشه، اصلا از دید من منصفانه نیست (البته بحث در این مورد مربوط به هزینه این آموزش در برابر سایر آموزش های سون لرن هست نه مقایسه با جاهای دیگر، چون آموزش های آقای علی محمدی از هر نظر، واقعا بی نظیره) اگر بخواهید هر سه این موارد در یک دوره پوشش داده بشه، می توان بگم در کل سطح وب فارسی، این دوره واقعا خوبه، اما من از نظر هزینه، به نظرم هزینه اش معقول نیست. البته اگه می تونید آموزش های انگلیسی هم ببینید، دوره زیر از یودمی، هم طراحی قالب رو پوشش میده، هم پلاگین نویسی و هم SPA با وردپرس. البته واقعا دوره سون لرن از اون کامل تر هستش و مضاف بر اینکه این دوره، آموزش php رو به صورت جداگانه نداره. (لینک یودمی رو حتما باید با اسمش رو نیار برید، چون با آی پی ما ایرانی ها، باز نمیشه)
لینک یودمی:
https://www.udemy.com/wordpress-development-create-wordpress-themes-and-plugin
همه این دوره ها و دوره های مشابه که به صورت بوت کمپ یا فشرده برگزار میشه، از دید من خیلی عمق نداره و شما به صورت سطحی با یک سری موارد، فقط آشنا میشید. به نظرم هر کدام از این بخش ها رو بهتره که جداگانه برید سمتش. برای تسلط به کدنویسی وردپرس، من road map زیر رو به شما پیشنهاد می کنم (در نظر داشته باشید که تقریبا اکثر دوره های ایرانی یا خارجی در این زمینه رو دیدم و به نظرم این آموزش های زیر، بهترین اون ها هستند برای تسلط بر این مباحث)
۱- اول از همه تسلط نسبی به php : در واقع میشه گفت، بدون پی اچ پی، اصلا طراحی قالب وردپرس و پلاگین نویسی وردپرس، یعنی هیچ. اگه بخواهید که خیلی سریع php رو یاد بگیرید و شیرجه بزنید تو عالم کدنویسی وردپرس، بهترین مرجع رایگان، آموزش php در سایت w3schools هست. اگر دنبال آموزش های فارسی هستید، آموزش پی اچ پی آقای لقمان آوند از سون لرن و همین طور آموزش php از آقای عارفی نیا در آکادمی آی تی، بهترین ها در این زمینه هستند. آموزش آقای آوند، با اینکه قدیمی هست، اما واقعا کامل و جامع هست. البته آموزش آکادمی آی تی جمع و جور تر هست. البته به نظر بهتره به مباحث شی گرایی در php هم مسلط بشید، من واقعا آموزش زیر از یودمی، خیلی برام مفید بود:
https://www.udemy.com/oop-php-object-oriented-programing-with-project-1-course
اگه بخواهید یه خورده به اسکریپت نویسی php هم مسلط بشید ( که تو پلاگین نویسی واقعا به کارتون میاد) می تونید از آموزش جدید آقای صالحی با نام دوره جامع اسکریپت نویسی php (فروشگاه محتوای آموزشی) در سایت سون لرن استفاده کنید.
البته من با یکی از دوره های coursera هم خیلی لذت بردم، البته یه خورده داستان داره عضویت در سایت و … اما در کل دوره واقعا کاربردی هست. این از لینکش:
https://www.coursera.org/specializations/web-applications
البته شما فقط با یکی از دو مورد اول که گفتم (یعنی دوره آقای آوند یا عارفی نیا) یا هر دوره ای که خودتون صلاح می دونید، می تونید شیرجه بزنید تو دنیای کدنویسی وردپرس
۲- بعد از یادگیری پی اچ پی، باید برید یا سراغ طراحی قالب یا پلاگین نویسی، واقعیت این دو خیلی بهم وابسته هستند و بسیاری از مفاهیمی که در هرکدام یاد می گیرید، در دیگری هم قابل استفاده هست. اما به دلخواه خودتون، می تونید یکی رو آغاز کنید، البته پیشنهاد من، شروع با طراحی قالب وردپرس هست (چون با ساختار درختی وردپرس و نحوه کار اون، اول آشنا میشید و این خیلی در ادامه به شما برای پیاده سازی ایده هاتون کمک می کنه)
در این مرحله، فقط و فقط یک آموزش هست که به نظرم بی نظیرترین آموزشی بوده که در این چند سال دیدم (و به همین دلیل میگم هزینه ای که سون لرن بابت دوره متخصص میگیره در مقایسه با این دوره هایی که در ادامه میاد و همه هم توسط آقای علی محمدی عزیز تدریس میشه، واقعا منصفانه نیست) . این دوره نامش هست: دوره مجازی آموزش جامع طراحی قالب حرفه ای وردپرس توسط استاد عزیز آقای کیوان علی محمدی در سایت سون لرن. واقعا شاهکاره و از نظر جامعیت واقعا بی نظیره.
بعد می تونید پلاگین نویسی وردپرس که توسط ایشون و در همین سایت سون لرن ارائه میشه رو ادامه بدید و در انتها، یه دوره شاهکار دیگه، به اسم دوره چگونه می توانیم : (مخصوص پیاده سازی امکانات متنوع برای قالب های وردپرس).
البته، برای طراحی قالب باید شما به HTML و CSS و همین طور مقداری JavaScript و همین طور JQuery مسلط باشید (حتی بهتره یک فریم ورک CSS مثل بوت استرپ رو هم بدونید که کارتون راحت بشه) تا بتونید خیلی راحت به پیاده سازی موارد دلخواه خودتون در وردپرس بپردازید.
تا همین جا، می تونید به راحتی وارد دنیای بسیار جذاب کدنویسی وردپرس بشید.
۳- حالا می رسیم به بحث حرفه ای شدن و تمیز کد زدن: اینجا واقعا شما به دوره ای مثل متخصص وردپرس سون لرن نیاز دارید (جالبه نه، کلی گفتم این دوره نمی ارزه به قیمتش، آخرشم گفتم بهتره این دوره رو شرکت کنید) البته مطمئنم با کامنت هایی که بچه های این دوره ها دادند، مسلما دوره های بعد در سون لرن حرفه ای تر برگزار میشه. اگه بخش های ابتدایی این دوره حذف بشه و در واقع تمرکز بشه به مبحث استفاده از دیزاین پترن ها در کدنویسی وردپرس و همین طور طراحی و کدنویسی شی گرا، واقعا بی نظیر خواهد بود.
در این دوره، آقای علی محمدی عزیز، بسیار زیبا مباحث شی گرایی رو در طراحی قالب و پلاگین نویسی وردپرس به کار می برند و در واقع شما به مدرن ترین روش و بسیار تمیز، تسلط پیدا می کنید به کدنویسی وردپرس.
در کنار تمام این موارد سایت https://developer.wordpress.org رو هم فراموش نکنید چون مرجع شما برای تمامی آموزش ها و توابع در وردپرس خواهد بود.
ببخشید که طولانی شد، این شد چکیده دو سال گذشته که خیلی غرق شدم در وردپرس، البته من تازه اول راهم و این مژده رو هم به شما بدم که هر روز سعی خواهیم کرد، که به مطالب سایت اضافه کنیم.
وجود افرادی مثل شما، به ما انرژی مضاعف میده برای ادامه راه. از لطف شما بسیار ممنون و سپاسگزارم