در مثال بالا به الگو توجه داشته باشید:
- <?php مکانی است که قلاب را برای کارکردن قرار می دهید
- add_action دستور ایجاد قلاب عمل است
- wp_print_footer_scripts این target_hook است که شما را به یک عملکرد جدید پیوند می دهد
- themefars_custom_footer_scripts تابع نصب شده و به target_hook پیوند داده شده است
- <script> بیانگر متنی است که می خواهید در target_hook نشان داده شود (در این حالت، این wp_print_footer_scripts است)
ایجاد هوک فیلتر
هوک فیلتر برای اصلاح، فیلتر یا جایگزینی یک مقدار با مقدار جدید استفاده می شود. می توانید با استفاده از عملکرد apply_filters() هوک فیلتر ایجاد کنید.
- $score = 100 مقدار نمره اولیه است
- echo “Current score is: ” نشان دهنده اسکریپتی است که شما نشان می دهید
- apply_filters دستور ایجاد هوک فیلتر است
- ‘change_score’, $score تابعی که باید فیلتر شود
این فیلتر است:
add_filter( 'change_score', 'function_change_score' ); function function_change_score( $score ){ ? $score+=100; ? return $score; }
- Add_filter برای اتصال هوک فیلتر با یک عملکرد جدید ایجاد شده است
- ‘Change_score‘ هوک هدف است که اصلاح خواهد شد
- ‘Function_change_score‘ یک تابع جدید است که بر مقدار اولیه تأثیر می گذارد
- ? $score+=100; کدی است برای افزودن مقدار بیشتر به مقدار اولیه ($score)
- ? return $score; کد برای نشان دادن مقدار جدید در پایان است
نتیجه باید به شکل زیر باشد:
Current score: 200
حذف اقدامات و فیلترها
function disable_emojis() { remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_styles', 'print_emoji_styles' ); remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' ); add_action( 'init', 'disable_emojis' ); }
کد بالا با هدف از بین بردن عملکرد emoji به طور کامل در وردپرس است. به وضوح نشان می دهد که محدودیتی در تعداد دستورات remove_filter که می توانید در functions.php تعبیه کنید وجود ندارد.