راهنمای سیستم هوک و apply_filters وردپرس

apply_filters وردپرس

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

apply_filters وردپرس

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

Action: 

زمانی اجرا می‌شود که اتفاق خاصی در وردپرس رخ داده باشد. مثلا زمانی که کاربر در سایت وردپرسی ثبت نام کرده یا پستی منتشر می‌شود و امثال اینها.
دو نمونه از معروف‌ترین اکشن‌ها ()wp_head و () p_footer هستد که در اکثر قالب‌ها دیده می‌شوند. ()wp_head در فایل header.php قرار دارد و () p_footer در فایل footer.php که البته از کد آن‌ها نیز می‌توان متوجه این موضوع شد.

Filter: 

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

 نکته: در واقع ما از اکشن استفاده می‌کنیم تا توابعی را به بخش دلخواهی از کد ( کد هسته یا کد قالب وردپرس) نسبت دهیم.

 برای مثال بعضی از پلاگین‌ها برای اضافه کردن کد دلخواهشان به قسمت head وبسایت از اکشن wp_head استفاده می‌کنند.
جهت روشن شدن توضیحات بالا چند مثال میزنیم:

  رفع خطای اتصال پایگاه داده یا establishing a database connection در وردپرس

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

در فایل functions.php  یک تابع دلخواه برای اضافه کردن مطلب تعریف می‌کنیم :

</p>

<pre class="brush:php">function matlab($content){
	if(is_single()){
	$content.='<p class="matlab">نوشته تازه اضافه شده توسط فیلتر</p>';
return $content;
	}
return $content;
}

پس از تعریف تابع دلخواه توسط دستور زیر تابع را به فیلتر the_content نسبت می دهیم :

add_filter('the_content','matlab');

حال نوشته “این یک متن ثابت است ” به انتهای تمامی پست‌ها اضافه می‌شود .

در انتها برای نمایش کاربرد اکشن‌ها با استفاده از اکشن ()wp_head برای کلاس matlab که در بالا تعریف کردیم style تعریف می‌کنیم
در این مورد هم ابتدا یک تابع دلخواه تعریف کرده سپس به اکشن ()wp_head نسبت می‌دهیم:

function style(){
echo '<style type="text/css">.matlab{background-color:#CCC;border:#000 3px dashed;}</style>';

}
add_action('wp_head','style');

apply_filters وردپرس

apply-filter-hamyarwp

تابع apply_filters وردپرس یکی از توابع مهم در هوک به حساب می‌آید که در واقع در هسته وردپرس و بعضی از افزونه‌ها وجود داشته و امکان اتصال تابع را ایجاد می‌کند. نمونه کدی که در زیر آورده شده می‌تواند مثال خوبی برای عملکرد آن در بخش محتوا باشد:

</p>
<p dir="RTL" style="text-align: justify;">$content = apply_filters( 'the_content', $content );</p>
<p dir="RTL" style="text-align: justify;">

با توجه به قطعه کد بالا می‌توانیم مطلب مورد نظر را که به کمک تابع apply_filters وردپرس  به قسمت ‘the_content’ وصل کرده و تغییر دهیم. به صورت قطعه کد زیر:

</p>
<p dir="RTL" style="text-align: justify;">add_action( 'the_content', 'Hamyarwp_english2persian' );</p>
<p dir="RTL" style="text-align: justify;">

پس توجه کنید هر جا که خواستید امکان اتصال تابع را ایجاد کنید باید از تابع apply_filters وردپرس استفاده کنید و به صورتی که خدمت شما توضیح دادیم عمل کنید. این تابع برای افزونه نویسی مهم بوده و کارایی زیادی دارد.

توجه: شما می‌توانید لیست سایر اکشن ها و فیلتر ها را مشاهده کنید.

سوالات متداول

در واقع هوک یا hook در زبان انگلیسی به معنای قلاب بوده اما در به زبان وردپرس نوعی تابع است که با کمک آن می‌توان متن یا بخشی را فیلتر کرد. در واقع هوک به دو بخش Action و Filter تقسیم می‌شود.
زمانی اجرا می‌شود که اتفاق خاصی در وردپرس رخ داده باشد. مثلا زمانی که کاربر در سایت وردپرسی ثبت نام کرده یا پستی منتشر می‌شود و امثال اینها. دو نمونه از معروف‌ترین اکشن‌ها ()wp_head و () p_footer هستد که در اکثر قالب‌ها دیده می‌شوند. ()wp_head در فایل header.php قرار دارد و () p_footer در فایل footer.php که البته از کد آن‌ها نیز می‌توان متوجه این موضوع شد.
در فیلتر موضوع متفاوت است و زمانی کاربرد دارد که بخواهیم قبل از نمایش یک پست در سایت تغییراتی بر روی آن اعمال کنیم یا قبل از ذخیره یک مطلب در دیتابیس آن را ادیت کنیم. مهم‌ترین نمونه‌ای که در این بخش موجود بوده فیلتر apply_filters وردپرس است که بیشتر به مبحث امروز ما بر می‌گردد و قرار است مورد بررسی قرار گیرد.
آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

دیدگاهتان را بنویسید

ارسال دیدگاه به معنی این است که شما ابتدا قوانین ارسال دیدگاه را مطالعه کرده‌اید و با آن موافق هستید.

دیدگاه‌های این نوشته جدید ترین ها شاخص

  1. سلام
    تشکر بابت این مطلب.
    اخرش خیلی مبهم بود لطفا بازنویسی کنید (apply_filters )
    ممنون

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

  3. مطلب مفیدی بود. ممنون