وردپرس یک پلت فرم بسیار قابل تنظیم است که به کاربران اجازه می دهد تا عملکرد خود را از طریق قلاب ها و عملکردهای مختلف گسترش دهند. یکی از پرکاربردترین توابع است add_action()، که به شما امکان می دهد بدون تغییر فایل های اصلی وردپرس رفتار سفارشی را به سایت خود اضافه کنید.

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

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

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

به عنوان مثال، add_action() تابع کد سفارشی شما را برای اجرا در هنگام انتشار پست اضافه می کند، در حالی که add_filter() محتوای یک پست را قبل از نمایش آن تغییر می دهد.

اقدامات وردپرس چگونه کار می کند؟

اقدامات وردپرس با قرار دادن توابع سفارشی در رویدادهای از پیش تعریف شده در چرخه حیات وردپرس کار می کنند. این add_action() تابع این رویدادها را قلاب می کند تا کد سفارشی شما در زمان مناسب اجرا شود.

به عنوان مثال، اگر می خواهید یک اسکریپت سفارشی به هدر سایت خود اضافه کنید، می توانید از آن استفاده کنید wp_head اقدام hook. وردپرس کد شما را هر زمان که به هدر سایت شما برسد اجرا می کند page با متصل کردن عملکرد شما به این رویداد بارگیری می شود.

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

بسته به روش های مختلفی می توانید اکشن ها را به وردپرس اضافه کنید روی جایی که می خواهید کد سفارشی خود را قرار دهید:

  • فایل functions.php تم. اگر عملکرد سفارشی شما با موضوع مرتبط باشد، این رایج‌ترین مکان برای افزودن کنش‌ها است. فایل functions.php تم فعال خود را باز کرده و خود را اضافه کنید add_action() کد
  • فایل functions.php تم کودک. اگر یک طرح زمینه کودک ایجاد کرده اید، می توانید اقدامات خود را در طرح زمینه کودک قرار دهید functions.php فایل اگر می خواهید تغییرات خود را جدا از موضوع اصلی نگه دارید، این روش مفید است.
  • افزونه سفارشی. اگر می‌خواهید اقدامات سفارشی‌تان مستقل از موضوع باشد، یک افزونه سفارشی ایجاد کنید. به این ترتیب، حتی اگر موضوع سایت خود را تغییر دهید، کد شما به کار خود ادامه می دهد. برای انجام این کار، یک فایل PHP جدید در قسمت ایجاد کنید wp-content/plugins/ دایرکتوری خود را اضافه کنید add_action() کد کنید و افزونه را فعال کنید.

پارامترهای add_action() وردپرس

وردپرس add_action() تابع روش و زمان اجرای کد سفارشی شما را با گرفتن چندین پارامتر کنترل می کند. بیایید آنها را تجزیه کنیم:

  • $hook_name. این پارامتر عمل را مشخص می کند hook نامی که می خواهید تابع سفارشی خود را به آن ضمیمه کنید. این hook تعیین می کند که عملکرد شما چه زمانی اجرا می شود. وردپرس دارای قلاب های از پیش تعریف شده زیادی است، مانند init برای اجرای کد پس از اتمام بارگذاری وردپرس و wp_footer برای افزودن کد به فوتر
  • $ برگشت به تماس. اغلب به عنوان تابع پاسخ به تماس نامیده می شود، این نام تابعی است که می خواهید در هنگام عمل مشخص شده اجرا کنید. hook تحریک می شود. این تابع حاوی کد سفارشی است که در نقطه مناسب در وردپرس اجرا می شود.
  • اولویت $ (اختیاری). این اولویت $ پارامتر ترتیب اجرای توابع مرتبط با آن وردپرس را تعیین می کند hook. اولویت پیش فرض است 10، اما می توانید این مقدار را تنظیم کنید تا کنترل کنید عملکرد شما زودتر یا دیرتر از سایر توابع در همان عملکرد اجرا شود. اعداد کمتر به این معنی است که عملکرد زودتر اجرا می شود.
  • $accepted_args (اختیاری). تعداد آرگومان هایی را که تابع callback شما می تواند بپذیرد را مشخص می کند. به طور پیش فرض، وردپرس این را تنظیم می کند 1، اما اگر تابع شما نیاز به پذیرش آرگومان های بیشتری داشته باشد، می توانید آن را افزایش دهید.

در اینجا یک نمونه از کامل است add_action() تابع:

function my_custom_script() {

echo '<script>alert("Hello, World!");</script>';

}

add_action( 'wp_footer', 'my_custom_script', 10, 1 );
  • $hook_name – ‘wp_footer’. این مشخص می کند که تابع باید زمانی اجرا شود که wp_footer اقدام hook راه اندازی می شود، که زمانی اتفاق می افتد که وردپرس قصد دارد تگ بدنه را ببندد روی هر page.
  • $callback – ‘my_custom_script’. نام تابعی که زمانی اجرا می شود wp_footer hook نامیده می شود.
  • اولویت $ – 10. این اولویت پیش‌فرض است، به این معنی که تابع به ترتیب استاندارد نسبت به سایر توابع متصل به آن اجرا می‌شود wp_footer.
  • $accepted_args – 1. اگرچه این تابع به آرگومان نیاز ندارد، وردپرس آن را به صورت پذیرش تنظیم می کند 1 آرگومان به صورت پیش فرض
پیشنهاد می‌کنیم بخوانید:  روش ایجاد کد کوتاه در وردپرس (در 7 مرحله)

به عنوان وردپرس page فوتر را بارگذاری می کند اسکریپت_سفارشی من تابع اجرا می شود، با وارد کردن یک اسکریپت که یک جعبه هشدار را با پیام “Hello, World!” نمایش می دهد. قبل از page بسته می شود.

نمونه ای از add_action() در وردپرس

این بخش برخی از کاربردهای عملی را نشان می دهد add_action() تابع اگر شما host سایت وردپرس شما روی هاستینگer و می خواهید این نمونه ها را امتحان کنید، ابتدا آنها را در یک محیط صحنه سازی آزمایش کنید.

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

اضافه کردن یک اسکریپت سفارشی به صفحه اصلی وردپرس

یکی از استفاده های رایج از add_action() در حال درج اسکریپت های سفارشی در قسمت جلوی سایت وردپرس شما است. این می تواند زمانی مفید باشد که شما نیاز به گنجاندن فایل های جاوا اسکریپت یا اسکریپت های درون خطی داشته باشید که عملکرد یا طراحی سایت شما را بهبود می بخشد.

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

در اینجا روش انجام آن آمده است:

function add_custom_script() {

wp_enqueue_script( 'custom-js', get_template_directory_uri() . '/js/custom-script.js', array(), null, true );

}

add_action( 'wp_enqueue_scripts', 'add_custom_script' );

در این مثال، شما wp_enqueue_script تابع با چندین پارامتر:

  • ‘custom-js’ – یک دسته منحصر به فرد برای اسکریپت شما.
  • get_template_directory_uri() . ‘/js/custom-script.js’ – مکان فایل جاوا اسکریپت شما در فهرست تم شما.
  • آرایه () – مجموعه ای از وابستگی ها برای اسکریپت شما. در صورت وجود می توانید این را خالی بگذارید.
  • پوچ (اختیاری) – شماره نسخه اسکریپت
  • درست است – بارگذاری اسکریپت در فوتر (درست است) یا سربرگ (نادرست).

این add_action(‘wp_enqueue_scripts’, ‘add_custom_script’) خط شما را قلاب می کند افزودن_اسکریپت_سفارشی تابع به wp_enqueue_scripts اقدام این رویکرد از تداخل با سایر مضامین یا افزونه‌هایی که ممکن است اسکریپت‌های آن‌ها را در صف قرار دهند، جلوگیری می‌کند.

شما همچنین می توانید استفاده کنید add_action() عملکرد سفارشی کردن پاورقی سایت وردپرس شما. چه بخواهید یک پیام شخصی نمایش دهید، یک اعلامیه حق چاپ اضافه کنید یا HTML یا اسکریپت های اضافی را اضافه کنید، wp_footer hook فرصت ایده آل را فراهم می کند.

این hook درست قبل از بسته شدن فعال می شود برچسب زدن روی هر page از سایت وردپرسی شما همانطور که در مثال زیر نشان داده شده است، این مکان عالی برای افزودن محتوای سفارشی است که می‌خواهید در سرتاسر سایت ظاهر شود:

function add_custom_footer_message() {

echo '<p style="text-align: center;">Thank you for visiting our website!</p>';

}

add_action( 'wp_footer', 'add_custom_footer_message' );

در اینجا، شما یک پاراگراف ساده HTML با یک پیام متنی در مرکز اضافه می کنید. سپس، add_action() قلاب می کند add_custom_footer_message تابع به wp_footer اقدام

در نتیجه، هر بار که وردپرس به wp_footer hook، پیام سفارشی در فوتر سایت نمایش داده می شود.

اضافه کردن یک اعلان مدیریت سفارشی

در وردپرس، اطلاعیه های مدیریت به طور موثر اطلاعات مهم را در داشبورد مدیریت به کاربران منتقل می کند. این اعلان‌ها می‌توانند هشدارها، به‌روزرسانی‌ها یا پیام‌های دیگری را که نیاز به توجه مدیر سایت دارند را نمایش دهند.

قلاب زدن add_action() به admin_notices هر زمان که ناحیه مدیریت وردپرس بارگیری می شود، اقدام اعلان را در یک نقطه خاص فعال می کند. قطعه کد زیر روش افزودن اخطار مدیریت سفارشی را نشان می دهد:

function custom_admin_notice() {

echo '<div class="notice notice-success is-dismissible">

<p>This is a custom admin notice!</p>

</div>';

}

add_action( 'admin_notices', 'custom_admin_notice' );

این تابع سفارشی وردپرس HTML را برای اطلاعیه مدیر تولید می کند. این

عنصر شامل چندین کلاس است:

  • اطلاع دهید – این کلاس برای استایل دادن به عنصر به عنوان یک اطلاعیه مدیر مورد نیاز است.
  • اطلاع – موفقیت – اعلامیه را به عنوان پیام موفقیت تعریف می کند. برای نمایش انواع مختلف پیام ها، این را به تغییر دهید هشدار-اخطار، متوجه خطا، یا اطلاعیه-اطلاعات.
  • قابل اخراج است – این کلاس یک دکمه بستن اضافه می کند تا کاربران بتوانند اعلان را رد کنند.

می توانید منطق را به عملکرد سفارشی خود اضافه کنید تا اعلان را فقط در شرایط خاصی نمایش دهید، مانند هنگام ویرایش یک نوع پست خاص یا پس از به روز رسانی یک افزونه.

در اینجا یک مثال آمده است که فقط زمانی که یک نوع پست خاص را ویرایش می کنید، یک اخطار مدیر را نشان می دهد:

function conditional_admin_notice() {

global $post;

if ( $post->post_type == 'your_post_type' ) {

echo '<div class="notice notice-warning is-dismissible">

<p>This is a custom notice for your post type.</p>

</div>';

}

}

add_action( 'admin_notices', 'conditional_admin_notice' );

افزودن ویجت نوار کناری سفارشی

ویجت یک بلوک کوچک است که عملکرد خاصی را انجام می دهد، مانند نمایش پست های اخیر، نوار جستجو یا HTML سفارشی. با استفاده از widgets_init اقدام hook، می توانید ویجت سفارشی خود را در نوار کناری یا هر منطقه ویجت دیگر ثبت و نمایش دهید.

پیشنهاد می‌کنیم بخوانید:  چگونه یک وب سایت را با SSL وردپرس ایمن کنیم: 2 روش برای راه اندازی HTTPS + خطاهای رایج

ابتدا یک کلاس سفارشی تعریف کنید که گسترش یابد WP_Widget برای افزودن ویجت نوار کناری سفارشی این کلاس شامل منطق ویجت سفارشی شما، از جمله روش نمایش آن و هر فیلد فرم برای سفارشی کردن محتوای آن است.

class My_Custom_Widget extends WP_Widget {

// Constructor to set up the widget's name, description, etc.

public function __construct() {

parent::__construct(

'my_custom_widget', // Base ID

__( 'My Custom Widget', 'text_domain' ), // Widget name in the admin

array( 'description' => __( 'A custom widget that displays a message.', 'text_domain' ), ) // Widget description

);

}

// Output the content of the widget روی the frontend

public function widget( $args, $instance ) {

echo $args['before_widget'];

echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];

echo '<p>' . __( 'Hello, this is my custom widget!', 'text_domain' ) . '</p>';

echo $args['after_widget'];

}

// Output the widget options form روی the admin

public function form( $instance ) {

$title = ! empty( $instance['title'] ) ? $instance['title'] : __( 'New title', 'text_domain' );

?>

<p>

<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php _e( 'Title:', 'text_domain' ); ?></label>

<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">

</p>

<?php 

}

// Process widget options to save

public function update( $new_instance, $old_instance ) {

$instance = array();

$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? sanitize_text_field( $new_instance['title'] ) : '';

return $instance;

}

}

در قطعه بالا، ویجت_سفارشی_من گسترش می دهد WP_Widget کلاس و شامل متدهایی برای نمایش ویجت (ویجت، ایجاد فرم مدیریت ویجت (فرم، و ذخیره گزینه های ویجت (به روز رسانی کنید).

پس از تعریف کلاس سفارشی، آن را با استفاده از widgets_init اقدام hook. اینجاست که add_action() وارد بازی می شود:

function register_my_custom_widget() {

register_widget( 'My_Custom_Widget' );

}

add_action( 'widgets_init', 'register_my_custom_widget' );

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

سایر توابع عمل وردپرس

علاوه بر add_action()، چندین عملکرد دیگر در وردپرس با قلاب های اکشن تعامل دارند. این توابع به شما امکان می دهند کدهای سفارشی را اجرا کنید، اقدامات را حذف کنید و بررسی کنید که آیا اقدامات خاصی ثبت شده است یا خیر.

do_action()

این do_action() تابع یک عمل را تحریک می کند hook. این به شما امکان می دهد تمام عملکردهای متصل به یک عمل خاص را اجرا کنید. می توانید از آن در کد سفارشی خود برای ایجاد یک اقدام جدید که شما یا سایر توسعه دهندگان می توانید استفاده کنید hook به، امکان توسعه پذیری و کد مدولار را فراهم می کند.

do_action( 'my_custom_action' );

در این مثال، do_action() تابع باعث می شود من_عمل_سفارشی hook.

remove_action()

در مقابل، remove_action() یک تابع را از یک عمل خاص جدا می کند hook. این می تواند زمانی مفید باشد که شما نیاز به لغو یا توقف اجرای یک عملکرد خاص دارید، به خصوص زمانی که با پلاگین ها یا تم های شخص ثالث سروکار دارید.

remove_action( 'wp_head', 'wp_generator' );

در اینجا، شما استفاده می کنید remove_action() باز کردن قلاب wp_generator از wp_head.

has_action()

استفاده کنید has_action() عملکردی برای بررسی اینکه آیا یک عمل انجام می شود hook قبل از اجرای کد خاصی، هر گونه عملکردی به آن متصل است، و اطمینان حاصل می کند که عملی که می خواهید تغییر دهید واقعاً قلاب شده است.

if ( has_action( 'wp_footer', 'my_custom_footer' ) ) {

// The custom footer function is hooked, so do something

در مثال بالا، has_action() بررسی می کند که آیا my_custom_footer تابع به wp_footer اقدام اگر چنین است، می توانید از یک دستور شرطی برای اجرای منطق اضافی بر اساس استفاده کنید روی آن شرط

نتیجه گیری

این مقاله به چگونگی وردپرس پرداخت add_action() تابع به شما امکان می دهد وب سایت خود را گسترش دهید و سفارشی کنید. از افزودن اسکریپت های سفارشی و پیام های پاورقی گرفته تا ایجاد ویجت های نوار کناری منحصر به فرد، می توانید به سرعت عملکرد سایت خود را بدون تغییر فایل های اصلی تنظیم کنید.

ما همچنین سایر توابع مرتبط با عمل را مورد بحث قرار داده ایم do_action()، remove_action()، و has_action()، کنترل بیشتری بر روش و زمان اجرای کد سفارشی وردپرس به شما می دهد. تسلط بر این ابزارها به شما امکان می دهد یک وب سایت وردپرس پویاتر و شخصی سازی شده ایجاد کنید.

پرسش و پاسخ وردپرس add_action()

تفاوت بین add_action() و add_filter() چیست؟

add_action() توابع سفارشی را در قلاب های اکشن قرار می دهد که در نقاط خاصی اجرا می شوند add_filter() عملکردهایی را به قلاب‌هایی که داده‌ها را قبل از نمایش تغییر می‌دهند، متصل می‌کند. هر دو برای گسترش عملکرد وردپرس مهم هستند.

آیا استفاده از add_action() در فایل functions.php بی خطر است؟

بله، استفاده از آن بی خطر است add_action() در functions.php فایل با این حال، ایجاد یک افزونه سفارشی برای کدهای پیچیده یا قابل استفاده مجدد را در نظر بگیرید تا کد وردپرس خود را تمیز و قابل نگهداری نگه دارید.

تفاوت بین do_action() و add_action() چیست؟

add_action() یک تابع را برای اجرا در هنگام یک عمل ثبت می کند hook تحریک می شود، در حالی که do_action() باعث آن می شود hook، اجرای تمام توابع پیوست شده است. آنها با هم امکان اجرای کد انعطاف پذیر و مدولار را در وردپرس می دهند.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1403-08-26 17:12:06

امتیاز شما به این مطلب