What is a Widget in WordPress – How to Create it?

What is a Widget in WordPress – WordPress Widget एक ऐसा तरीका है जिसका प्रयोग करके हम हमारे Plugin के Data या किसी Information को WordPress Frontend में Display कर सकते हैं। WordPress हमें Widget Create करने के लिए एक API Provide करता है, जिनके द्वारा न केवल हम नया WordPress Widget Create कर सकते हैं बल्कि उन Widgets के साथ जरूरत के अनुसार Interact भी कर सकते हैं।

Creating Widget

WordPress में कोई भी Widget Create करने के लिए हमें WP_Widget Class को Use करना होता है। Widget की Working को समझने का सबसे सरल तरीका यही है कि हम WordPress Widget Related Concepts को एक Example Program द्वारा समझने की कोशिश करें जो कि निम्नानुसार है:

<?php 
class My_Widget extends WP_Widget {
function My_Widget() { 
	// process the widget
}

function form($instance) { 
	// widget form in admin dashboard
}

function update($new_instance, $old_instance) {
	// save widget options
}

function widget($args, $instance) {
	// display the widget
}
} 
?>

जैसाकि इस Code Segment में हम देख सकते हैं कि WP_Widget Class हमें हमारे Widget के लिए Functions के रूप में कई Features Provide करता है जहां हर Function का अपना एक Specific Purpose है।

किसी WordPress Widget को Create करने के First Step के रूप में हमें हमारे Widget को Initialize करने के लिए Appropriate Hook का चयन करना होता है। इस Hook को widgets_init नाम से Identify किया जाता है और ये Hook, WordPress के सभी Default Widgets के पूरी तरह से Register हो जाने के बाद Trigger होता है, जिसे निम्नानुसार Invoke किया जा सकता है:

add_action( 'widgets_init', 'my_widget_register_widgets' );

function my_widget_register_widgets() {
	register_widget( 'My_Widget' );
}

इस Code Segment के अनुसार जब “widgets_init” Hook Fire होता है तब “my_widget_register_widgets()” नाम का Function Execute होता है और ये Function Execute होते ही register_widget() API Function के माध्‍यम से “my_widget” नाम के Widget को WordPress Engine के साथ Register कर देता है।

WordPress 2.8 से पहले तक इसी तरह से Widget Create किया जाता था, लेकिन WordPress 2.8 के बाद से Widget Create करना काफी आसान हो गया है और Widget Create करने के लिए हमें उपरोक्तानुसार WP_Widget Class को Extend करना होता है, जहां हमारा Newly Create होने वाला Widget एक प्रकार से नया Extended Class होता है, जिसका का Unique नाम होता है। जैसे:

    class My_Widget extends WP_Widget {

ये Statement WP_Widget Class से My_Widget नाम की एक नई Class को Derive कर रहा है। Class को Extend करने के बाद हमें इसमें सबसे पहला Function Add करना होता है, जिसका वही नाम होता है, जो हमारी Extended Class का नाम होता है, क्योंकि ये Function एक प्रकार से Constructor की तरह काम करता है। जैसे:

class My_Widget extends WP_Widget {
	function My_Widget(){
		$widget_ops = array(
			'classname'=>'My_Widget',
			'description'=>__('Example Widget to Display Info on Frontend.', 'my- plugin')
		);
		
		$this->WP_Widget('Frontend_Info', __('Frontend Info', 'my-widget'), $widget_ops);
	}
}

इस पहले Function में Specify किया गया “classname” वास्तव में CSS Class Name है, जिसका प्रयोग हम हमारे Widget की Styling करने के लिए CSS File में कर सकते हैं। classname Option उस CSS Class को Represent करता है, जो कि Widget के सभी <li> Elements में Add होता है। जबकि Default रूप से सभी Widgets एक Unordered List में Display होते हैं।

यानी हर Individual Widget अपनी List का एक List Item होता है। इसलिए हर List Item के साथ एक classname ID को Attach करके हम हमारी जरूरत व सुविधा के अनुसार अपने Widget को Design व Style कर सकते हैं।

इसके साथ ही “description” द्वारा हम हमारे Widget से सम्बंधित Description Specify कर सकते हैं, जो कि हमें WordPress Admin के Widget Dashboard Panel में अपने Widget के नाम के नीचे दिखाई देता है।

Options का Array Create करने के बाद हमने हमारे Newly Create होने वाले Widget से सम्बंधित इन सभी Options WP_Widget Method में Parameter की तरह Pass किए गए, जहां “Frontend_Info” वास्तव में हमारे Widget का CSS ID Name है।

इस Constructor Function को Define करने के बाद अब हमें हमारे Widget से सम्बंधित Settings Form Create करना होता है। Widget Settings वे Settings होती हैं, जो कि Widget Admin Page पर तब दिखाई देती हैं जब हम हमारे Sidebar में दिखाई देने वाले Widget को Click करके Expand करते हैं और Widget Settings Page को Create करना WordPress Widget API की  वजह से काफी आसान हो जाता है, जहां हमें निम्नानुसार केवल एक form() Function Create करना होता है:

	class My_Widget extends WP_Widget {
		function My_Widget(){
			$widget_ops = array(
				'classname'=>'My_Widget',
				'description'=>__('Example Widget to Display Info on Frontend.', 'my-plugin')
			);
		
			$this->WP_Widget('Frontend_Info', __('Frontend Info', 'my-widget'), $widget_ops);
		}

		function form($instance){
			$defaults = array('title'=>__('Frontend Information'), 'name'=>'', 'info'=>'');

			$instance = wp_parse_args((array) $instance, $defaults);

			$title = strip_tags($instance['title']);
			$name = strip_tags($instance['name']);
			$info = strip_tags($instance['info']);
		?>
		<p>
			<?php _e('Title', 'my-plugin') ?>: 
			<input class="widefat" name="<?php echo $this->get_field_name('title'); ?>" 
				type="text" value="<?php echo esc_attr($title); ?>" />
		</p>
		<p>
			<?php _e('Name', 'my-plugin') ?>: 
			<input class="widefat" name="<?php echo $this->get_field_name('name'); ?>" 
				type="text" value="<?php echo esc_attr($name); ?>" />
		</p>
		<p>
			<?php _e('Info', 'my-plugin') ?>: <textarea class="widefat" 
				name="<?php echo $this->get_field_name('info'); ?>" 
				<?php echo esc_attr($info); ?></textarea>
		</p> 
	<?php
		}
	}

इस Code में सबसे पहले हमने #defaults Array Create किया है जो कि Widget Settings के लिए Set की जाने वाली Default Values को Hold करता है। हमारे Example Widget में हमने केवल अपने Widget के Default Title को ही Set किया है, जबकि name info नाम की Settings को Empty ही रखा है।

फिर हमने Argument के रूप में आने वाले instance Variable को Use करते हुए निम्नानुसार Statement लिखा है:

    $instance = wp_parse_args((array) $instance, $defaults);

इस Statement में wp_parse_args() API Function का प्रयोग किया गया है, जिसे “wp-includes/functions.php” File में निम्नानुसार Define किया गया है:

function wp_parse_args( $args, $defaults = '' ) {
	if ( is_object( $args ) )
		$r = get_object_vars( $args );
	elseif ( is_array( $args ) )
		$r =& $args;
	else
		wp_parse_str( $args, $r );

	if ( is_array( $defaults ) )
		return array_merge( $defaults, $r );
	return $r;
}

ये API Function वास्तव में एक ऐसा Function है जो Parameter के रूप में एक Variable Number of Arguments का Array या किसी एक ऐसा Query String (id=5&status=published) Accept करता है, जिसे Array में Convert किया जा सकता है।

वास्तव में इस API Function का मुख्‍य काम Parameter के रूप में आने वाले $args $defaults नाम के दो Array को आपस में Merge करते हुए एक तीसरा Array Return करना ही होता है। यानी Return होने वाले Array में Parameter के रूप में आने वाले Array $args$default के मानों को आपसे में Merge करके एक नया Merged Array Return करता है।

हमारे उदाहरण में हमने Argument के रूप में आने वाले $instance Variable को (array) द्वारा Type Cast करके इस API Function में पहले Argument की तरह Pass किया है जबकि दूसरे Argument के रूप में हमने निम्नानुसार Define किए गए $default नाम के Array को Pass किया है:

    $defaults = array(‘title’=>__(‘Frontend Information’), ‘name’=>”, ‘info’=>”);

तथा Return होने वाले Merged Array को फिर से $instance नाम के Variable में ही Retrieve किया है। जब हमारा Widget पहली बार हमारी WordPress Site/Blog के Sidebar में Add हो रहा होता है, तब इस New Widget से सम्बंधित कोई Information WordPress Options Table में नहीं होती है। इसलिए इस स्थिति में ऐसी कोई Setting नहीं होती, जो WordPress Database की Options Table में Save हो। अत: ये Settings पहली बार में Empty ही रहती हैं।

Widget Settings के अन्तिम हिस्से के रूप में हमें Form Elements को Display करना होता है, ताकि WordPress Admin द्वारा हम हमारे Widget की Settings की Values को Enter कर सकें और इसीलिए हमें Standard HTML Input Text Fields का प्रयोग करते हुए अपने Example Widget के तीनों Columns या Fields “Title”, “Name” “Info” की Values को Accept करने के लिए अपने Widget में निम्नानुसार Code लिखा है:

		<p>
			<?php _e('Title', 'my-plugin') ?>: 
			<input class="widefat" name="<?php echo $this->get_field_name('title'); ?>" 
				type="text" value="<?php echo esc_attr($title); ?>" />
		</p>
		<p>
			<?php _e('Name', 'my-plugin') ?>: 
			<input class="widefat" name="<?php echo $this->get_field_name('name'); ?>" 
				type="text" value="<?php echo esc_attr($name); ?>" />
		</p>
		<p>
			<?php _e('Info', 'my-plugin') ?>: <textarea class="widefat" 
				name="<?php echo $this->get_field_name('info'); ?>" 
				<?php echo esc_attr($info); ?></textarea>
		</p>

ध्‍यान देने वाली बात ये है कि इस Form में हमने Form की Settings को WordPress Database की Options Table में Save करने के लिए <submit> Element का प्रयोग नहीं किया है न ही HTML Form Create करने के लिए हमने <form> Element को ही Use किया है। बल्कि इन जरूरतों को Widget Class स्वयं ही अपने स्तर पर Handle करता रहता है, जिनके बारे में एक WordPress Widget Developer के रूप में हमें चिन्ता करने की जरूरत नहीं होती। साथ ही Display करने से पहले Values को Escape करने के लिए हमने esc_attr() API Function का भी प्रयोग किया है, ताकि Database से किसी भी तरह का Unwanted Data Retrieve न हो।

एक बार Form Create हो जाने के बाद हमें इस Widget के Form पर किए गए Settings Changes को WordPress Database की Options Table में Save या Update करना होता है और इस जरूरत को पूरा करने के लिए हमें हमारी Widget Class के update() API Function को निम्नानुसार तरीके से Use करना होता है:

		//Save the widget settings
		function update($new_instance, $old_instance) {
			$instance = $old_instance;
			$instance['title'] = strip_tags( $new_instance['title'] );
			$instance['name'] = strip_tags( $new_instance['name'] );
			$instance['info'] = strip_tags( $new_instance['info'] );

			return $instance;
		}

हमारे Widget की Modified Settings को Options Table में Save करने की सारी जिम्मेदारी WordPress Widget API स्वयं वहन करता है इसलिए जब हम update() Method को Overwrite करते हैं, तब हमें इस Method में दो Parameters Specify करने होते हैं, जहां पहला Parameter हमारे Widget की Newly Modified Settings को Represent करता है जबकि दूसरा Argument हमारे Widget की पिछली Settings को Represent करता है, जिन्हें नई Settings से Override करना होता है।

जब हम नई Settings को Apply करना चाहते हैं, तब हमें वास्तव में अपनी नई Settings को पुरानी Settings पर Overwrite करना होता है और नई Settings को निम्नानुसार Statements द्वारा Overwrite करने से पहले हम नई Values को Security को ध्‍यान में रखते हुए strip_tags() API Function का प्रयोग करते हैं:

            $instance[title] = strip_tags( $new_instance[title] );
            $instance[name] = strip_tags( $new_instance[name] );
            $instance[info] = strip_tags( $new_instance[info] );

update() Method को Override करने के बाद अन्तिम काम के रूप में हमें हमारे Widget को अपनी WordPress Site/Blog के Sidebar में Display करना होता है और इस जरूरत को पूरा करने के लिए हमें WP_Widget Class के widget() Method को Override करना होता है, जिसे हमने निम्नानुसार Define किया है:

		//Display the widget
		function widget($args, $instance) {
			extract($args);
			echo $before_widget;

			$title = apply_filters( 'widget_title', $instance['title'] );
			$name = empty( $instance['name'] ) ? '   ' : $instance['name'];
			$info = empty( $instance['info'] ) ? '   ' : $instance['info'];

			if ( !empty( $title ) ) { 
				echo $before_title . $title . $after_title; 
			};
			
			echo ' <p> Widget Name: ' . $name . ' </p> ';
			echo ' <p> Widget Info: ' . $info . ' </p> ';
			echo $after_widget;
		}

इस Method में सबसे पहले हमने $args Parameter को Extract किया है क्योंकि इसी Variable में हमारे WordPress की $before_widget $after_widget जैसी Global Values Hold रहती हैं और इन Values को तब Define किया जा सकता है, जब Sidebar को Register किया जाता है व इन Values को तब Use किया जा सकता है जब हम हमारे Widget को <div> Tag जैसे Wrapping Element के बीच Wrap करते हुए Customize करना चाहते हैं।

फिर हमने $title Variable को Widget के Title के लिए Set किया है। यहां हमने “widget_title” नाम के Filter Hook का प्रयोग करते हुए Title को Set किया है ताकि यदि कोई अन्‍य Developer हमारे Widget Title को Modify करते हुए Display करना चाहे, तो वह ऐसा कर सके।

जबकि $name व $info Variables को Set करने के लिए हमने PHP के Ternary Operator को Use किया है। जहां यदि $name या $info Empty हो, तो उसे “nbsp;” से Set किया गया है जबकि यदि ये Empty न हों, तो इन्हें Appropriate Name या Information Value से Set किया गया है।

जब ,ब बार सभी Widget Setting Variables को Define करके उनकी Values को Populate कर लिया जाता है, उसके बाद हमें हमारे Widget को Display करना होता है और इस क्रम में सबसे पहले हमें हमारे Widget के Title को Display करने के लिए $title Variable के मान को Display करना होता है जबकि इन सभी Variables को हमें हमेंशा $before_widget $after_widget के बीच ही Enclose करना जरूरी होता है।

Widget बनाने के लिए WordPress हमें जो API Provide करता है, वह वास्तव में WP_Widget नाम की एक Class है, जिसके कुछ Methods को हमें एक नई Child Class के रूप में Derive करना होता है। यानी WordPress हमें निम्नानुसार एक Framework Provide करता है जिसके माध्‍यम से हम हमारी जरूरत के अनुसार नया WordPress Widget Create कर सकते हैं:

class My_Widget extends WP_Widget {

	public function __construct() {
		// Widget actual processes
	}

	public function widget( $args, $instance ) {
		// Outputs the content of the widget
	}

 	public function form( $instance ) {
		// Outputs the options form on admin
	}

	public function update( $new_instance, $old_instance ) {
		// Processes widget options to be saved
	}
}

और इस Framework के आधार पर जो Widget Create होता है, उसे जब तक WordPress Engine के साथ Register नहीं किया जाता, तब तक हमें हमारा Widget दिखाई नहीं देता। इसलिए अपने Widget को Register करने के लिए हमें निम्नानुसार Statement द्वारा अपने Widget को Register करना होता है, जहां My_Widget हमारे Widget का नाम है, जो कि WP_Widget Class की Derived Class है:

add_action( 'widgets_init', function(){
     register_widget( 'My_Widget' );
});

WordPress Widget के पुराने API में WP_Widget नाम की जो Class Create की गई थी, उसमें Object Oriented Programming System के पुराने Concepts के अनुसार Constructor के रूप में Create की जाने वाली Child Classes का जो नाम होता था, उसी नाम का Constructor Method Create किया जाता था, लेकिन नए API के अनुसार अब Constructor के रूप में __construct() Magic Method को Use किया जाता है। इसलिए यदि हम हमारे पिछले उदाहरण को ही नई Child Class के अनुसार Define करें, तो हमारा Constructor Method कुछ निम्नानुसार हो सकता है:

	class My_Widget extends WP_Widget {
		function __construct(){
		…
	}
}

लेकिन WP_Widget API का प्रयोग करते हुए Widget बनाते समय हमें इस Class में Define की गई Properties Methods के बारे में कुछ Basic जानकारी प्राप्त करना जरूरी होता है, तभी हम इस WordPress Widget API द्वारा Provide किए जाने वाले Framework को Use करते हुए बेहतर तरीके से इसका प्रयोग करते हुए अपना WordPress Widget Create कर सकते हैं।

WP_Widget Class को wp-includes/widget.php नाम की File में Define किया गया है। यदि हम इस File को Open करके इस Class के बारे में जानकारी प्राप्त करना चाहें, तो अलग-अलग Versions के अनुसार इस कई तरीकों से इस Class को Define किया गया है जबकि Latest Version के अनुसार इस Class निम्नानुसार कुल 6 Properties या Attribute Variables को Define किया गया है:

var $id_base;           // Root id for all widgets of this type.
var $name;              // Name for this widget type.
var $widget_options;   	// Option array passed to wp_register_sidebar_widget()
var $control_options;  	// Option array passed to wp_register_widget_control()
	
var $number = false;    // Unique ID number of the current instance.
var $id = false;        // Unique ID string of the current instance (id_base-number)
var $updated = false;   // Set true when we update the data after a POST submit – 
// makes sure we don't do it twice.

इसी तरह से इस Class में कुछ Public Methods को भी Define किया गया है, जिन्हें Override करके हम हमारा Current Widget Create करते हैं, जबकि इस Class में बहुत सारे Private Methods भी Define किए गए हैं, जिन्हें ये Class Widget Create करने से सम्बंधित विभिन्न प्रकार की जरूरतों को पूरा करने के लिए स्वयं Internally Use करता है। इस Class में Define किए गए विभिन्न Public Methods का Description निम्नानुसार है:

	        function widget($args, $instance) {
	                die('function WP_Widget::widget() must be over-ridden in a sub-class.');
	        }

इस Method का मुख्‍य काम हमारे Widget के Content को Output में Render करना होता है। ये Method $args नाम के पहले Argument के रूप में before_title, after_title, before_widgetafter_widget सहित विभिन्न प्रकार के मानों को Display करता है, जहां $args एक Array है, जिसमें ये सभी मान Stored रहते हैं। जबकि $instance दूसरे Argument के रूप में Specified है और इस Argument में हमारे Custom Widget के किसी Particular Instance से सम्बंधित Settings होती हैं।

	        function update($new_instance, $old_instance) {
	                return $new_instance;
	        }

ये Method इस बात को Check करता है कि $new_instance नाम के Argument में Widget से सम्बंधित सभी Settings ठीक तरह से Set हुई या नहीं। साथ ही हम हमारे Widget से सम्बंधित जो भी नई Values Set करते हैं, वे सभी एक नए Instance के रूप में इस Method से Return होते हैं। इस Return होने वाले $new_instance में या तो Widget से सम्बंधित नई Settings की Information होती है अथवा यदि Saving को Cancel किया जाता है, तो इसमें Boolean false मान होता है। जबकि हमारे Widget से सम्बंधित पुरानी Settings $old_instance नाम के दूसरे Argument के रूप में इस Method में उपलब्ध रहती हैं।

function form($instance) {
	echo '<p class="no-options-widget">' . __('There are no options for this widget.') . '</p>';
	return 'noform';
}

इस Method द्वारा हम हमारे WordPress के Widget Admin Panel के अन्तर्गत अपने Widget से सम्बंधित Settings को Display करने के लिए दिखाई देने वाले Form को Create करने से सम्बंधित Codes लिखते हैं। ये Method Parameter के रूप में $instance नाम का एक Object Accept करता है, जिसमें हमारे Widget की Current Settings एक Array के रूप में Stored रहती हैं।

इन Methods के अलावा WordPress Widget API हमें PHP5 PHP4 दोनों Versions के लिए दो अलग प्रकार के Constructors Provide करता है। पिछले Section के Example Code में हमने जो Constructor Use किया था, वह Constructor वास्तव में PHP Version से का Constructor था, जिसमें Class का जो नाम होता है, उसी नाम का एक Member Method Create कर लिया जाता है। जैसे यदि हम WP_Widget Class के लिए PHP4 Constructor देखें, तो इस Class में निम्नानुसार Constructor Define किया गया है:

/* PHP4 constructor */
function WP_Widget( $id_base, $name, $widget_options = array(), $control_options = array() ) {
	WP_Widget::__construct( $id_base, $name, $widget_options, $control_options );
}

जबकि PHP5 के अनुसार इसी Constructor को निम्नानुसार Define किया गया है:

function __construct( $id_base, $name, $widget_options = array(), $control_options = array() ) {
	$this->id_base = empty($id_base) ? 
		preg_replace( '/(wp_)?widget_/', '', strtolower(get_class($this)) ) : strtolower($id_base); 
	$this->name = $name;
	$this->option_name = 'widget_' . $this->id_base;
	$this->widget_options = 
		wp_parse_args( $widget_options, array('classname' => $this->option_name) );
	$this->control_options = 
		wp_parse_args( $control_options, array('id_base' => $this->id_base) );
}

दोनों ही प्रकार के Constructor वास्तव में Internally PHP5 के Constructors को ही Use करते हैं, जो कि मूल रूप से चार Parameters Accept करता है। पहला Argument $id_base नाम का Parameter है। ये Parameter हमारे Newly Create होने वाले को एक Unique ID Provide करता है, ताकि उस ID द्वारा हम अपने Widget को Unique Identify कर सकें।

चूंकि $id_base एक Optional Base ID है, इसलिए यदि हम इस Parameter को कोई मान Set नहीं करते, तो WordPress Engine स्वयं ही निम्न Statement के माध्‍यम से हमारे Widget की Class Name के एक हिस्से को Base ID के रूप में Use कर लेता है:

$this->id_base = empty($id_base) ?
preg_replace( /(wp_)?widget_/, , strtolower(get_class($this)) ) : strtolower($id_base);

$name दूसरे Argument के रूप में Accept किया जाता है, जो एक String Type का Argument है। इस Argument में हम जो नाम Specify करते हैं, वह नाम हमारे Widget के नाम के रूप में Widget Admin Panel में Configuration Page पर दिखाई देता है। निम्न Statement के माध्‍यम से इस Parameter में Pass किया जाने वाला नाम निम्न Statement के माध्‍यम से हमारे WP_Widget Class के $name Attribute में Set हो जाता है:

    $this->name = $name;

इसी तरह से इस Constructor में Pass किया जाने वाला तीसरा व चौथा Parameter एक Array Type के Optional Arguments होते हैं। $widget_options नाम का तीसरा Parameter wp_register_sidebar_widget() नाम के API Function में Pass कर दिया जाता है, जिसमें classname description नाम के दो Elements होते हैं। description Element को Pass किया जाने वाला Data हमें हमारे Widget के साथ दिखाई देता है जबकि classname Element के रूप में Specify किया जाने वाला] हमारे Widget के CSS Class Name के रूप में दिखाई देता है, जिसके माध्‍यम से हम हमारे Widget को Style व Layout कर सकते हैं। इस काम को करने के लिए निम्न Statement Execute होता है:

    $this->widget_options = wp_parse_args( $widget_options, array(classname => $this->option_name) );

जबकि चौथे Parameter के रूप में $control_options Array को Pass किया जाता है, जो wp_register_widget_control() API Function को Pass होता है। इस ।ततंल में width height नाम के दो Elements होते हैं और ये दोनों Elements Configuration Page पर दिखाई देने वाले हमारे Widget की Height व Width को Specify करते हैं।

यदि width का मान 250px से ज्यादा हो, तो इस Parameter के माध्‍यम से width Element को Specify करना जरूरी होता है जबकि height Element को Future Use के लिए Reserve रखा गया है। इस Parameter द्वारा आने वाले मान को Class के control_options Attribute में निम्नानुसार Statement द्वारा Assign कर दिया जाता है:

    $this->control_options = wp_parse_args( $control_options, array(id_base => $this->id_base) );

इस Constructor के अलावा WP_Widget Class हमें दो और महत्वपूर्ण Methods Provide करता है, जिनकी जरूरत हमें हमारे form() Method में HTML User Interface Page Create करते समय होती है, क्योंकि इन्हीं दोनों Methods द्वारा WordPress Database की Options Table से Widget Settings Page की Settings Related Data को Save/Update व Retrieve किया जाता है।

        function get_field_name($field_name) {
	                return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']';
        }

ये Method Argument के रूप में उस Field का नाम Accept करता है, जिससे सम्बंधित मान को हमें WordPress Database की Options Table से Retrieve करके Widget Admin Panel पर दिखाई देने वाले User Interface Form के HTML Controls में Place करना होता है या Widget Settings को Save करने पर Widget के HTML Controls में Stored Data को WordPress Database की Options Table में Update करना होता है। ये Method हमारे Widget User Interface के HTML Control के name Attribute के साथ Use किया जाता है, जबकि ये Method $field_name का String Format में Name Attribute Return करता है।

        function get_field_id($field_name) {
                return 'widget-' . $this->id_base . '-' . $this->number . '-' . $field_name;
	}

जिस तरह से get_field_name() Method हमारे HTML Widget Form के User Interface के किसी HTML Control के name Attribute की Value को Represent करता है, ठीक उसी तरह से ये Method हमारे ये Method हमारे HTML Widget Form के User Interface के किसी HTML Control के id Attribute की Value को Represent करता है। ये Method भी Parameter के रूप में Widget के किसी HTML Control के Field Name को Accept करता है तथा Return Value के रूप में उस Field का id Attribute Value Return करता है।

इन Public Methods के अलावा और भी बहुत सारे Methods को WP_Widget Class में Define किया गया है, लेकिन वे सभी Private Methods हैं, जिन्हें ये Class विभिन्न प्रकार की जरूरतों को पूरा करने के लिए स्वयं ही Internally Use करता है।

continue…

add_menu_page Submenu in WordPress
WordPress Dashboard Widget - Create Step by Step

WordPress in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Advance WordPress in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Advance WordPress in Hindi | Page: 835 | Format: PDF

BUY NOW GET DEMO REVIEWS

MidRangeHub Finance Auto Loans Bank Business Health Insurance Insurance Investment Law Lif Insurance Loan Stocks how to endorse a check chase sapphire travel insurance chase sapphire travel delay when are property taxes due Tower Loans how to sell stocks on cash app Voided Check Examples Personal Finance Books Collateral Loans how to sell stocks on cashapp how do you sell your stocks on cash app how to sell stock on cash app joint account sofi joint account ally joint account capital one joint account best bank for joint account chase joint account cyber insurance coverage silverfort free cyber insurance coverage silverfort monjouro savings card Money6x Real Estate