ابزارک (widget )، اجازه می دهد تا امکانات دلخواه خود را به سایدبار یا هر ناحیه ابزارک تعریف شده در پوسته اضافه کنید، اگر می خواهید ویجت دلخواه تان را به صورت سفارشی طراحی کرده و به وردپرس اضافه کنید این بخش را مطالعه کنید.
ابزارک چیست؟
یک ابزارک وردپرس حاوی قطعه کدی است که شما می توانید به نوار کناری و ناحیه نمایش ابزارک پوسته اضافه کنید. می توان مشابه افزونه هایی در نظر گرفت که به پوسته اضافه می شوند و نمایش داده خواهند شد. در پیشخوان وردپرس بخش نمایش و ابزارک ها، می توان لیست ابزارک ها را مشاهده کرده و آنها را به سایدبار یا نواحی دیگر درگ و دراپ کرد.
بطور پیشفرض وردپرس دارای یک مجموعه از ابزارک های استاندارد است و هر کدام از افزونه ها و پوسته ها هم ابزارک های خاصی به لیست ابزارک ها اضافه می کنند. در این بخش روش برنامه نویسی و ساخت ابزارک را آموزش می دهیم.
ایجاد یک ابزارک سفارشی در وردپرس
برای کدنویسی و ساخت ابزارک می توانید کدهای ابزارک جدید را در یک افزونه جدید قرار دهید که با اضافه کردن افزونه به وردپرس، ابزارک شما به لیست ابزارک های وردپرس اضافه شده و با غیرفعال کردن افزونه، مخفی خواهند شد، یا اینکه کدهای مربوط به ابزارک را در فایل functions.php مربوط به پوسته قرار دهید در این صورت هم با فعال کردن این پوسته، ابزارک های تعریف شده در آن در لیست ابزارک های وردپرس نمایش داده خواهند شد.
در این آموزش برای راحتی کار از فایل functions.php استفاده می کنیم. ما می خواهیم ابزارک جدیدی برای پوسته مان اضافه کنیم. پس کد زیر را در فایل functions.php موجود در زیرپوشه پوسته قرار دهید.
<?php
/*
Plugin Name: plugin3
Plugin URI : http://blog.webaca.ir
Plugin Description : یک پلاگین آموزشی برای ساخت ابزارک
Plugin Version: 1.0
*/
class My_Widget1 extends WP_Widget {
public function __construct() {
$widget_ops = array(
'classname' => 'my_widget1',
'description' => 'ابزارکی برای آموزش');
parent::__construct( 'my-widget1', 'ابزارک 1 : برای آموزش' , $widget_ops );
}
public function widget( $args, $instance ) {
?>
<h2><?php echo $instance['title']; ?> </h2>
<p> <?php echo $instance['text']; ?> </p>
<?php
}
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = $new_instance['title'] ;
$instance['text'] = $new_instance['text'] ;
return $instance;
}
public function form( $instance ) {$title = $instance['title'] ;
$text = $instance['text'] ;
?>
<label>عنوان</label> <br />
<input size="27" name="title" type="text" value="<?php echo $title; ?>" />
<br />
<label> متن </label><br />
<textarea cols="28" rows="5" name="text" ><?php echo $text; ?></textarea>
<?php}
}function my_load_widget() {
register_widget( 'My_Widget1' );
}
add_action( 'widgets_init', 'my_load_widget' );
?>
در ادامه به شرح هر کدام از بخش های این قطعه کد می پردازیم:
برای ساخت ابزارک یک کلاس با نام دلخواه ( مثلا My_Widget1 )تعریف می کنیم که از کلاس WP_Widget ارث بری دارد. در داخل این کلاس یک تابع سازنده تعریف می کنیم :
public function __construct() {
$widget_ops = array(
'classname' => 'my_widget1',
'description' => 'ابزارکی برای آموزش');
parent::__construct( 'my-widget1', 'ابزارک 1 : برای آموزش' , $widget_ops );
}
در تابع سازنده ابتدا یک آرایه انجمنی به نام widget_ops تعریف شده و تنظیمات ابزارک شامل نام کلاس و توصیف ابزارک قراراداده شده و سپس تابع سازنده کلاس پدر فراخوانی شده با پارامترهای : نام ابزارک، عنوان و تنظیمات
تابع widget نوشته شده تا شامل طراحی ابزارک موقع نمایش در سایت باشد. در این ابزارک ما می خواهیم یک عنوان و یک متن را در هر جای پوسته نمایش دهیم .
public function widget( $args, $instance ) {
?>
<h2><?php echo $instance['title']; ?> </h2>
<p> <?php echo $instance['text']; ?> </p>
<?php
}
تابع update برای ذخیره سازی تغییرات روی ابزراک در پیشخوان وردپرس استفاده می شود:
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = $new_instance['title'] ;
$instance['text'] = $new_instance['text'] ;
return $instance;
}
تابع form فرمی را طراحی می کند که در صفحه پیشخوان وردپرس برای تنظیم ابزارکخواهیم دید.
public function form( $instance ) {$title = $instance['title'] ;
$text = $instance['text'] ;
?>
<label>عنوان</label> <br />
<input size="27" name="title" type="text" value="<?php echo $title; ?>" />
<br />
<label> متن </label><br />
<textarea cols="28" rows="5" name="text" ><?php echo $text; ?></textarea>
<?php}
در این بخش با روش ساخت ابزارک آشنا شدید، پس از نوشتن کدهای فوق در فایل functions.php پوسته می توانید وارد پیشخوان وردپرس شده و در بخش ابزارک ها ، نام ابزارک جدید را مشاهده کده و به هر ناحیه که خواستید اضافه کنید.