طراحی افزونه وردپرس | از وبلاگ‌های ساده گرفته تا سایت‌های پیچیده تجاری و فروشگاهی و میلیون‌ها سایت دیگر از wordpress استفاده می‌کنند. سهولت استفاده از وردپرس باعث شده با کمک قالب و افزونه وردپرس در کمتر از چند ساعت یا حتی چند دقیقه بتوانید یک سایت ساده طراحی کنید. اما تمام ماجرا در سادگی وردپرس ختم نمی‌شود؛ چرا که وردپرس می‌تواند به اندازه خواسته‌های شما پیچیده شود! اما چگونه؟

اینجاست که افزونه‌ها یا پلاگین‌ها به کمک شما می‌آیند. برنامه‌های کوچکی که روی وردپرس نصب می‌شوند تا امکانات مورد نیاز شما را به سایت اضافه کنند. برای استفاده از افزونه‌ها دو راه پیش روی شماست، یا باید از افزونه‌های آماده استفاده کنید یا می‌توانید به سراغ طراحی افزونه وردپرس خودتان بروید و  طراحی افزونه وردپرس را شروع کنید.

دوره پیشنهادی مرتبط با طراحی افزونه وردپرس

به طور کلی استفاده از افزونه‌های آماده به شما این امکان را می‌دهد که بدون نوشتن حتی یک خط کد امکاناتی که مورد نیاز سایت شما هست را به آن اضافه کنید و مثلا سایت خود را به یک فروشگاه اینترنتی تبدیل کنید. این افزونه ها توسط افراد سراسر دنیا نوشته و توسعه داده شده است بنابراین کمترین مشکلات و مشکلات امنیتی را دارد و مدام به روز می شوند.

جهت آشنایی با افزونه های ضروری وردپرس مقاله افزونه های ضروری وردپرس را مطالعه کنید.

از معایت استفاده از افزونه آماده این است که شما ناچارید هم از لحاظ پردازش و سنگینی و هم از لحاظ منوها و فیلد ها و … امکانات اضافه آن را هم بپذیرید و مطابق با ساختار افزونه سایت خود را راه اندازی کنید نه ساختار خاصی که شما در ذهن دارید.

پس اگر می‌خواهید امکانات اختصاصی خود را داشته باشید که هیچ افزونه‌ای برای آن یافت نمی‌شود باید خودتان افزونه مورد نیاز خود را بنویسید و اصطلاحا به طراحی افزونه وردپرس بپردازید.

مراحل طراحی افزونه وردپرس

یک افزونه ساده وردپرس حداقل شامل یک پوشه به نام افزونه و بهمراه یک فایل php است که به عنوان فایل اصلی، عملکرد افزونه در داخل آن نوشته می‌شود. اما با پیچیده تر شدن افزونه فایل‌ها و پوشه‌های افزونه خیلی بیشتر خواهند شد. در این مقاله قصد داریم یک افزونه خیلی ساده طراحی کنیم که در ابتدای هر پست، مدت زمانی که برای مطالعه پست لازم هست را به صورت خودکار تخمین زده و نمایش دهد. پس طبق فرآیند تصویر بالا مرحله به مرحله شروع به نوشتن افزونه می کنیم.

مراحل طراحی افزونه وردپرس

مرحله اول: نام افزونه را «تخمین مدت مطالعه» میگذاریم که نام لاتین آن «estimate study duration» می شود.

مرحله دوم: در داخل پوشه wp-content/plugins/ یک پوشه با نام estimate-study-duration و داخل این پوشه یک فایل php با نام estimate-study-duration.php ایجاد میکنیم.

مرحله سوم: اطلاعات افزونه یا همان شناسنامه افزونه را به شکل زیر ثبت می کنیم.

<?php
/**
 * Plugin Name: تخمین مدت مطالعه
 * Plugin URI: https://daneshjooyar.com/plugins/estimate-study-duration
 * Description: با این افزونه مدت مطالعه پست ها به صورت خودکار تخمین زده می شود
 * Author: محمد مهدی جعفری
 * Author URI: https://daneshjooyar.com/teacher/jafari
 * Version: 1.0.0
 * License: GPLv2 or later
 */

این بخش طراحی افزونه وردپرس حتما باید به صورت کامنت php ثبت شود تا مشکلی در عملکرد افزونه ایجاد نکند و صرفا به وردپرس اطلاعات افزونه را منتقل میکند. اما مواردی که اینجا تکمیل کردیم به صورت زیر است.

پارامتر Plugin Name : نام افزونه را مشخص می کند که می تواند فارسی یا انگلیسی باشد. دقت کنید تنها پارامتری که اگر ثبت نشود یا اشتباه ثبت شود افزونه در بخش مدیریت افزونه ها اصلا نمایش داده نمی شود و وردپرس افزونه شما را نمی شناسد.

پارامتر Plugin URI : آدرس اینترنتی صفحه افزونه که می تواند صفحه ای از سایت شخصی یا صفحه افزونه در مخزن وردپرس باشد

پارامتر Description: توضیحاتی که در خصوص افزونه می نویسید که عملکرد افزونه را توضیح می‌دهد و می توانید از تگ های html مثل لینک هم داخل آن استفاده کنید.

پارامتر Author: نام نویسنده افزونه که می‌تواند نام شرکت،  نام شخص یا نام یک گروه باشد

پارامتر Author URI: آدرس اینترنتی صفحه نویسنده افزونه

پارامتر: Version: شماره نسخه افزونه

پارامتر Licence: مجوزی که این افزونه دارد

نکته: پارامترهای دیگری هم وجود دارد که فعلا از آن صرف نظر می کنیم. در ضمن افزونه شما تنها با پارامتر Plugin Name هم می تواند کار کند اما سایر موارد برای ارائه یک افزونه جامع استفاده می کنیم.

حالا می‌توانید به بخش مدیریت » افزونه ها » افزونه های نصب شده بروید و افزونه خود را مشاهده کنید و آن را فعال کنید.

مدیریت افزونه های وردپرس

اما این افزونه هنوز هیچ کاری انجام نمی دهد و باید بدنه آن یا توابع افزونه را برای انجام عملکردی که گفتیم بنویسیم پس به سراغ مرحله چهارم می‌رویم.

مرحله چهارم: خطوط زیر را به فایل estimate-study-duration.php اضافه میکنیم تا مدت زمان مطالعه را تخمین بزند و اول پست ها اضافه کند. فایل کامل افزونه:

<?php
/**
 * Plugin Name: تخمین مدت مطالعه
 * Plugin URI: https://daneshjooyar.com/plugins/estimate-study-duration
 * Description: با این افزونه مدت مطالعه پست ها به صورت خودکار تخمین زده می شود
 * Author: محمد مهدی جعفری
 * Author URI: https://daneshjooyar.com/teacher/jafari
 * Version: 1.0.0
 * License: GPLv2 or later
 */

function echo_estimate_study_duration( $content ){
    $content_text           = strip_tags( $content );
    $content_words          = explode( ' ', $content_text );
    $word_count             = count( $content_words );
    $estimate_duration      = round( $word_count / 200 );
    $estimate_duration_html = '<p>';
        $estimate_duration_html.= 'مدت زمان برای مطالعه: ';
        $estimate_duration_html.= $estimate_duration . ' دقیقه';
    $estimate_duration_html.= '</p>';
    return $estimate_duration_html . $content;
}
add_filter( 'the_content', 'echo_estimate_study_duration' );

توضیحات کد:

در خط 23 با استفاده از فیلتر the_content قصد داریم تا محتوای پست را تغییر دهیم و مدت مطالعه را ابتدای هر پست ثبت کنیم. پارامتر دوم این تابع، اسم تابعی است که عملیات تغییر محتوای پست را به عهده دارد و محتوای فعلی را گرفته و مدت زمان را تخمین زده و به اول محتوا اضافه می کند و نتیجه را مجدد به خروجی می فرستد.

تابع echo_estimate_study_duration از خط 12 تا 22 تعریف شده که که پارامتر ورودی محتوای فعلی پست است.

خط 13: چون تگ های html توسط خواننده ها خوانده نمی شوند پس باید از متن اصلی حذف شوند.

خط 14: برای قبال شمارش بودن کلمات با استفاده از فاصله تمام کلمات را در یک آرایه قرار می‌دهیم

خط 15: تعداد کلمات را می شماریم

خط 16: به طور متوسط هر کاربر در یک دقیقه حدود 200 کلمه مطالعه می کند پس با یک تقسیم و گرد کردن مدت دقیقه حدودی مطالعه محاسبه می شود.

خط 17 تا 21 مدت زمان دریک پاراگراف قرار می گیرد و به ابتدای پست اضافه می شود.

و اما نتیجه:

مرحله نهایی طراحی افزونه وردپرس

مرحله پنجم: می توانید پوشه estimate-study-duration را به صورت zip فشرده کرده و به مشتری ارائه بدهید.

برای جزئیات بیشتر و دقیق تر و همچنین روند نوشتن افزونه به صورت شی گرایی، استاندارد و انتشار در مخزن اصلی وردپرس می توانید «طراحی افزونه  گالری پست» را ببینید

مهم‌ترین اجزا در طراحی افزونه وردپرس

نکته ای که باید در خصوص the_content افزونه بالا مطرح کنیم است که برای طراحی افزونه وردپرس باید با دو مفهوم Filter Hook و Action Hook آشنا شوید که هر دو به HooK یا قلاب های وردپرس معرفند.

مهم‌ترین اجزا در طراحی افزونه وردپرس

قلاب‌های اکشن (Action Hooks)

اکشن‌ها در وردپرس به فعالیت خاصی اشاره دارند که در زمان خاصی اتفاق می‌افتند. با استفاده از اکشن‌ها می‌توان عملکرد جدیدی به وردپرس اضافه کرد مثلا ایجاد یک فیلد اضافه در فرم ورود یا ثبت نام، تزریق اسکریپت یا کد html به سایت، ایجاد منوی جدید، انجام فعالیت مثل ارسال پیامک در زمان ورود مدیر به سایت و …

قلاب‌های فیلتر(Filter Hooks)

فیلترها قلاب‌هایی هستند که متغیر یا متغیر هایی را دریافت و پس از اصلاح کردنشان، آنها را برای اجرا می‌فرستند. به طور خلاصه، فیلترها به شما اجازه می‌دهند محتوای نمایش داده شده به کاربران را دستکاری کنید. The_content دقیقه یک فیلتر هست که ما محتوا را گرفتیم، دستکاری کردیم و مجدد به خود وردپرس تحویل دادیم.

بررسی دقیق این مفاهیم نیاز مند یک یا چند مقاله تخصصی است که در این مقاله امکان بررسی بیشتر وجود ندارد.

چه زمانی باید به سراغ طراحی افزونه وردپرس رفت؟

جواب این سوال خیلی ساده است. با اینکه تعداد زیادی افزونه‌ وردپرس وجود دارد، ممکن است هیچ کدام از آنها نتواند مشکل شما را به درستی یا به صورت کامل حل کند. دقیقا در همین مرحله است که شما به یک افزونه جدید نیاز پیدا می‌کنید که به صورت اختصاصی برای حل مشکل شما طراحی شده است.

هزینه طراحی افزونه وردپرس چقدر است؟

برای پاسخ به این سوال باید موارد خیلی زیادی را در نظر گرفت. میزان پیچیدگی افزونه، زمانی که به صورت استاندارد برای طراحی آن نیاز است و خیلی موارد دیگر می‌توانند روی قیمت طراحی افزونه وردپرس تاثیر بگذارند. به همین علت نمی‌توان قیمت مشخصی برای طراحی افزونه وردپرس در نظر گرفت. صحبتمان در این قسمت به پایان میرسد چانچه سوالی در اینباره دارید میتوانید از قسمت نظرات سوالاتتان ار مطرح کنید.