تبلیغات

درباره ما

بایگانی

آمار سایت

  • افراد آنلاین 1
  • بازدید امروز 32
  • بازدید دیروز 0
  • ورودی امروز از گوگل 0
  • ورودی دیروز از گوگل 0
  • بازدید این هفته 32
  • بازدید این ماه 44
  • بازدید این سال 302
  • بازدید کل 344
  • تعداد مطالب سایت 101
  • تعداد نظرات 0

شبکه های اجتماعی


قابلیت افزودن محتوا یا این که بقیه موردها را به قسمت های متفاوت وبسایت آماده می کنند . وردپرس ابزارک های مفیدی اعم از برای آرشیو , نوع ها , برچسب ها , کاوش , متن های اخیر , روزنگار و… را مهیا نموده است . البته شاید هنگامی بخواهید یک ابزارک سفارشی در وردپرس تولید نمایید . چه می بایست کرد؟ در‌این مقاله برای شما توضیح می‌دهیم که چه طور اینکار را انجام دهید . طراحی سایت در مشهد
ابزارک سفارشی در وردپرس
مطمئنا ساختن یک ابزارک سفارشی در وردپرس حادثه خیر و خوبی است که در شرایطی‌که چه بسا یک برنامه نویس ماهر نیز نباشید می‌توانید این فعالیت را انجام دهید . صرفا به یک داده ها ابتدایی در باب oop در php نیاز دارید و دیگر معطل بمانید تا انتهای این یادگرفتن یک ابزارک سفارشی تحویل بگیرید!
ساختار نخستین ی ابزارک وردپرس

طبق ضوابط بسط ی وردپرس , ابزارک ها دارنده کلاس wp _ widget میباشند . بدین ترتیب برای ساخت یک ابزارک سفارشی در وردپرس نیازمند توسعه و گسترش ی این کلاس خوا‌هیم بود . اولی کاری که می بایست انجام دهیم ساخت یک فولدر php در مسیر wp _ content / plugins /my _ widget / است . که در اولِ فولدر قطعه کد زیر را جایگذاری می‌کنیم :
1
2
3
4
5
6
7
8
9

< ? php
/*
Plugin Name : My Widget
Plugin URI : http : //wordpress . org/extend/plugins/#
Description : This is an example plugin
Author : Your Name
Version : 1 . 0
Author URI : http : //example . com/
*/

این یک سربرگ بی آلایش برای پلاگین است و برای انگیزه کافیست . آن گاه فولدر متبوع را ذخیره نمایید و آنگاه به سراغ پیشخوان وردپرس رفته و پلاگین را فعال نمایید . حالا وقت آن رسیده که کلاس wp _ widget را توسعه و گسترش دهید . به این مراد قطعه کد زیر را درون پوشه پلاگین وارد نمائید .
1
2
3
4

// register My _ Widget
add _ action ( ' widgets _ init ' , function ( ) {
register _ widget ( ' My _ Widget ' ) ;
} ) ;

Add _ action دستورالعملی برای فراخوانی عملگر widgets _ init میباشد . که در همه پلاگین ها به طور پیش فرض قرار می گیرد .
تلاش register _ widget برای ابزارک خاصی است که قادر است کلاس wp _ widget را توسعه و گسترش دهد :
1
2
3
4
5
6
7
8
9
10
11
12
13

class My _ Widget extends WP _ Widget {
// class constructor
public function _ _ construct ( ) {}

// output the widget content on the front - end
public function widget ( $args , $instance ) {}

// output the option form field in admin Widgets screen
public function form ( $instance ) {}

// save options
public function update ( $new _ instance , $old _ instance ) {}
}

اکنون ابزارک ما حاضر است و تنها به چهار کلاس احتیاج داراست :

Constract _ _ : کلاسی که برای ساخت پارامترهای ابزارک به طور سفارشی اذن صادر می کنید .
( ) Widget : برای نمایش محتوای ابزارک به فعالیت می‌رود .
( ) form : موادتشکیل دهنده ابزارک در پیشخوان برای نمایش فرم است .
( ) update : به روزرسانی عنصرها ابزارک

پیکربندی ابزارک

برای اضافه کردن توضیحات مرتبط با ابزارک مثل شناسه ی ابزارک , تیتر , پیکربندی مازاد و… کدهای زیر را در پوشه php وارد فرمائید :
1
2
3
4
5
6
7

public function _ _ construct ( ) {
$widget _ ops = array (
' classname ' => ' my _ widget ' ,
' description ' => ' A plugin for Kinsta blog readers ' ,
) ;
parent : : _ _ construct ( ' my _ widget ' , ' My Widget ' , $widget _ ops ) ;
}
ساخت فرم ابزارک در پنل مدیر

هم اکنون می خواهیم فرمی را برای پیکربندی ابزارک در سمت رئیس ساخت کنیم تا یوزرها توانمند به تهیه کردن آن باشند . این عمل بر عهده ی کلاس ( ) form هست :
1

public function form ( $instance ) { $title = ! empty ( $instance[ ' title ' ] ) ? $instance[ ' title ' ] : esc _ html _ _ ( ' Title ' , ' text _ domain ' ) ; ? >

"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 ) ; ? >">

< ? php }

sidebar - ابزارک سفارشی در وردپرس

این نمونه بی آلایش می‌تواند نشان دهد که پیکربندی قیمت بزرگی داراست و برای یوزرها یک سایت مثل مدیریت وب سایت دوچندان کاربردی است . حالا می‌خواهیم ارزیابی لیستی را برای ابزارک خویش تعریف کنیم :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

public function form ( $instance ) {

$posts = get _ posts ( array (
' posts _ per _ page ' => 20 ,
' offset ' => 0
) ) ;
$selected _ posts = ! empty ( $instance[ ' selected _ posts ' ] ) ? $instance[ ' selected _ posts ' ] : array ( ) ;
? >
    < ? php foreach ( $posts as $post ) { ? >

  • type="checkbox"
    name="< ? php echo esc _ attr ( $this - >get _ field _ name ( ' selected _ posts ' ) ) ; ? >[]"
    value="< ? php echo $post - >ID; ? >"
    < ? php checked ( ( in _ array ( $post - >ID , $selected _ posts ) ) ? $post - >ID : ' ' , $post - >ID ) ; ? > />
    < ? php echo get _ the _ title ( $post - >ID ) ; ? >

  • < ? php } ? >
    < ? php
    }

    فیض ای که بدست میاید به طور زیر است :

    widget post - ابزارک سفارشی در وردپرس
    بروزرسانی پیکربندی ابزارک

    برای بروزرسانی همانگونه که گفتیم از کلاس ( ) update استفاده می‌کنیم و راهبرد آن را باطن فولدر ابزارک می‌گذاریم :
    1
    2
    3
    4
    5
    6
    7
    8
    9

    public function update ( $new _ instance , $old _ instance ) {
    $instance = array ( ) ;
    $instance[ ' title ' ] = ( ! empty ( $new _ instance[ ' title ' ] ) ) ? strip _ tags ( $new _ instance[ ' title ' ] ) : ' ' ;

    $selected _ posts = ( ! empty ( $new _ instance[ ' selected _ posts ' ] ) ) ? ( array ) $new _ instance[ ' selected _ posts ' ] : array ( ) ;
    $instance[ ' selected _ posts ' ] = array _ map ( ' sanitize _ text _ field ' , $selected _ posts ) ;

    return $instance;
    }
    خروجی ابزارک

    از کلاس ( ) widget برای نمایش خروجی و پیکربندی ابزارک در محیط استفاده کننده استفاده می گردد . برای اینکار میتوان کد قطعه کد زیر استفاده کرد :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25

    public function widget ( $args , $instance ) {
    echo $args[ ' before _ widget ' ];
    if ( ! empty ( $instance[ ' title ' ] ) ) {
    echo $args[ ' before _ title ' ] . apply _ filters ( ' widget _ title ' , $instance[ ' title ' ] ) . $args[ ' after _ title ' ];
    }

    if ( ! empty ( $instance[ ' selected _ posts ' ] ) && is _ array ( $instance[ ' selected _ posts ' ] ) ) {

    $selected _ posts = get _ posts ( array ( ' post _ _ in ' => $instance[ ' selected _ posts ' ] ) ) ;
    ? >
      < ? php foreach ( $selected _ posts as $post ) { ? >
    • < ? php } ? >
      < ? php

      }else{
      echo esc _ html _ _ ( ' No posts selected! ' , ' text _ domain ' ) ;
      }

      echo $args[ ' after _ widget ' ];

      [ امتیاز : ]
      برچسب ها