تعریف و اضافه کردن ابزارک دلخواه جدید به سایت وردپرسی

مسیح دیندار
مدیریت
عضو شده: 2021-04-12 14:23:35
2021-04-25 06:13:56

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

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

خب برای اینکار، خیلی نیاز به زحمت نیست! این کد رو داخل فایل functions.php قالبتون اضافه کنید:

// ساختن ابزارک جدید
class talkina_widget extends WP_Widget {
  
function __construct() {
parent::__construct(
  
// آی دی اصلی ابزارک ما
'talkina_widget', 
  
// نام ابزارک که قرار است در پیشخوان نمایش داده شود
__('سلام من تاکینا هستم', 'talkina_widget_domain'), 
  
// توضیحات ابزارک در صفحه ابزارک در پیشخوان
array( 'description' => __( 'یک توضیحات اینجا بنویسید', 'talkina_widget_domain' ), ) 
);
}
  
// کدهایی که برای ساختن فرانت اند هستند. یا همون چیزی که کاربر قراره ببینه
  
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] );
  
// این دو یعنی قبل و بعد رو خود قالب تعیین می کنه
echo $args['before_widget'];
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];
  
// هر چیزی در این قسمت وارد شود در خروجی ابزارک در سایت نمایش داده می شود
echo __( 'سلام به همه به تاکینا خوش آمدید', 'talkina_widget_domain' );
echo $args['after_widget'];
}
          
// قسمت مربوط به پیشخوان و چیزی که فقط مدیر می تونه ببینه
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) ) {
$title = $instance[ 'title' ];
}
else {
$title = __( 'نام جدید', 'talkina_widget_domain' );
}
// فرم ابزارک
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'عنوان:' ); ?></label> 
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<?php 
}
      
// بروزرسانی محتوای ابزارک قدیمی با جدید
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
return $instance;
}
 
// کلس ابزارک اینجا تموم میشه
} 
 
 
// تعریف و ثبت رسمی ابزارک جدید ما در سایت
function wpb_load_widget() {
    register_widget( 'talkina_widget' );
}
add_action( 'widgets_init', 'wpb_load_widget' );

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

در واقع مراحل کار ما اینا هستن که داخل کد بالا اجرا شدن:

  1. تعریف یک کلس جدید برای ابزارک جدیدمون
  2. تعریف محتویات ابزارک در پیشخوان وردپرس که فقط خودمون می تونیم ببینیم. برای تنظیم ابزارک یا تغییر محل نمایش اون
  3. تعریف محتویات خروجی ابزارک که داخل سایت و در محل ابزارک برای کاربران نمایش داده میشه.
  4. قسمت آخر هم ثبت نهایی ابزارک جدید در وردپرس هست که به وردپرس بگیم ابزارکمون رو ثبت کن تا بتونیم داخل سایت ازش استفاده کنیم

حالا اگه به مسیر "پیشخوان > نمایش > ابزارک" برید می تونید ابزارک جدیدمون رو ببینید.