মঙ্গলবার,  দুপুর ১২:৫৪  ♦  ১৯শে মার্চ, ২০২৪ ইং, ৫ই চৈত্র, ১৪৩০ বঙ্গাব্দ ( বসন্তকাল )
মঙ্গলবার,  দুপুর ১২:৫৪  ♦  ১৯শে মার্চ, ২০২৪ ইং, ৫ই চৈত্র, ১৪৩০ বঙ্গাব্দ ( বসন্তকাল ), ৯ই রমযান, ১৪৪৫ হিজরী  ♦
ওয়ার্ডপ্রেস টিপস

শেয়ার

iftekharul
  • 44 টি টিপস
About Author
(পদবী - ধ্রুপদী)

আমি ইফতেখার, TiPS4BLOG এর সম্পাদক এবং লেখক। আপনাদের দারুন আর মানসম্মত টিপস নিয়মিত উপহার দেওয়াই আমার লক্ষ্য।

৮ বছর ৬ মাস ১৮ দিন আগে
iPhone SE 2

iPhone SE 2 লঞ্চ করতে চলেছে Apple, মধ্যবিত্তের সাধ্যের মধ্যে

অক্টো. 5, 2019 9:27:35 অপরাহ্ন ( ৪ বছর ৫ মাস ১৬ দিন আগে )

আপনি সম্প্রতিকালে কোন মতামত প্রদান করেন নাই।

ওয়ার্ডপ্রেস উইজেট
ওয়ার্ডপ্রেস ৭৭৩৭ বার

ওয়ার্ডপ্রেস উইজেট [পর্ব-৫] :: উইজেট সাইটে প্রদর্শন করা

অ-
অ+

আমাদের উইজেট তৈরি করা প্রায় শেষ পর্যায়ে আছে। বিগত কয়েকটি পর্বে আমরা উইজেট তৈরি প্রায় সম্পন্ন করে ফেলেছি, শুধু আউটপুট প্রদর্শন করানো বাঁকি আছে। গুরুত্বপূর্ণ একটি বিষয় হলো, আমরা উইজেটের মাধ্যমে কি প্রদর্শন করাতে চাচ্ছি সেটা সম্পর্কে ভালোভাবে জানা। যেমন, আমরা এই সিরিজে রিসেন্ট টিপস সাইডবারে দেখাবো উইজেটের মাধ্যমে। সুতরাং, রিসেন্ট টিপস দেখানোর জন্য আমাদেরকে আগে একটি ফাংশন তৈরি করে নিতে হবে। পরবর্তীতে আমরা ফাংশনটিকে উইজেটের মধ্যে কল করে আউটপুট দেখাবো। তাহলে, চলুন আগে দেখে নেই কিভাবে রিসেন্ট টিপস প্রদর্শন করাতে হয়।

বিজ্ঞাপন

রিসেন্ট টিপস প্রদর্শন

রিসেন্ট টিপস দেখানো একদমি সহজ। এছাড়া রিসেন্ট টিপসের জন্য ওয়ার্ডপ্রেসের নিজস্ব উইজেটই আছে। আমরা শেখার জন্য সহজ বিধায় এটাকে বেছে নিয়েছি। যেটা করতে হবে, একটি নতুন ফাংশন তৈরি করবো আমরা T4B_Recent_Posts_Widget ক্লাসের বাইরে। পরে ফাংশনটিকে ক্লাসের মধ্যে কল করবো। আমরা WP_Query ব্যবহার করে প্রথমে টিপসগুলোকে ক্যুয়েরী করবো। কথা না বাড়িয়ে ঝটপট নিচের ফাংশনটি T4B_Recent_Posts_Widget ক্লাসের বাইরে বসিয়ে দিন:

function display_recent_post($post_count) {
	$the_query = new WP_Query( array( 'posts_per_page' => 5, 'order' => 'DESC' ) );

	if ($the_query->have_posts()) :
		while ( $the_query->have_posts() ) : $the_query->the_post();
	
			echo '<li><a href="'.get_permalink().'">';
				echo wp_trim_words( get_the_title(), 12, ' ...' );
			echo '</a></li>';
	
		endwhile;
		wp_reset_postdata();
	endif;
}

ফাংশনটিতে আমরা $post_count নামে একটি প্যারামিটার ব্যবহার করেছি, যার ভ্যালূ হবে ইউজার কতৃক ফর্মের “Number of Posts:” ফিল্ডে দেওয়া সংখ্যা। wp_trim_words ওয়ার্ডপ্রেসের একটি নিজস্ব ফাংশন, যার মাধ্যমে আমরা টিপসের শিরোনামকে একটি নির্দিষ্ট দৈর্ঘ্যের মধ্যে রেখেছি। দৈর্ঘ্য অতিক্রম করলে “…” চিহ্ন দেখাবে। চাইলে শুধু get_the_title() ইউজ করলেও সমস্যা নাই, তবে অনেক বড় শিরোনাম হলে সেটি সাইডবারে ঠিক মানানসই হবে না। তাহলে, উইজেটের মাধ্যমে সাইটে রিসেন্ট টিপস প্রদর্শনের জন্য আমাদের প্রাথমিক কাজ শেষ। এখন আমরা উপরের ফাংশনটিকে উইজেটে কল করে পুরো কাজ সম্পন্ন করবো।

উইজেট ফাংশন তৈরি

T4B_Recent_Posts_Widget ক্লাসে শুধু আর একটি ফাংশন বাঁকি আছে সম্পন্ন করা। এটি হচ্ছে widget ফাংশন। এই ফাংশনটিই মূলত আউটপুট প্রদর্শনের জন্য ব্যবহৃত হয়। এটার একটি গঠনপ্রণালী আছে:

	function widget($args, $instance) {
		extract( $args );
		echo $before_widget;
			echo $before_title . 'title' . $after_title;
		echo $after_widget;
	}

এই গঠনকে কাজে লাগিয়েই আমরা ফাংশনটিকে এডিট করবো নিচের মতো করে:

	function widget( $args, $instance ) {
		extract( $args );
		$title = apply_filters('widget_title', $instance['title'] );
		$count = $instance['numberofposts'];
		echo $before_widget;

		if ( $title )
			echo $before_title . $title . $after_title;

		echo '<ul>' . display_recent_post($count) . '</ul>';

		echo $after_widget;
	}

এখানে আমরা $before_widget এবং $after_widget এর মধ্যে আগের তৈরি display_recent_post() ফাংশনকে কল করেছি এবং প্যারামিটার হিসেবে ইউজার ফর্মে যতগুলো সংখ্যা দিবে তা উল্লেখ করেছি।

এখন, প্লাগিনটি সেভ করুন এবং আপনার সাইট ভিজিট করুন। সাইডবারের যে অবস্থানে আপনি উইজেটটি বসিয়েছেন সেখানে রিসেন্ট টিপসগুলো প্রদর্শিত হবে।

recent post widget

চূড়ান্ত প্লাগিন

তাহলে আমরা একটি সম্পূর্ণ উইজেট প্লাগিন তৈরি করে ফেলেছি! অনেকটা এক ঢিলে দুই পাখি মারার মতো। উইজেট তৈরি করাও হলো, আবার প্লাগিন তৈরি করাও শেখা হলো।

পাঁচটি পর্বের এই সিরিজে আমরা পুরো কাজটি শেষ করেছি। আপনাদের আরও ভালোভাবে বোঝার জন্য সুবিধা করে দিতে নিচে সম্পূর্ণ প্লাগিনটি তুলে ধরা হলো, যা পাঁচটি সিরিজ জুরে বানানো হয়েছে:

<?php
/*
Plugin Name: T4B Recent Posts
Description: This widget will display a number of recent posts in your blog.
Version: 0.1
Author: Iftekhar
Author URI: https://tips4blog.com
License: GPLv2
*/
?>
<?php
/* Display the recent post */
function display_recent_post($post_count) {
	$the_query = new WP_Query( array( 'posts_per_page' => 5, 'order' => 'DESC' ) );

	if ($the_query->have_posts()) :
		while ( $the_query->have_posts() ) : $the_query->the_post();
	
			echo '<li><a href="'.get_permalink().'">';
				echo wp_trim_words( get_the_title(), 12, ' ...' );
			echo '</a></li>';
	
		endwhile;
		wp_reset_postdata();
	endif;
}
class T4B_Recent_Posts_Widget extends WP_Widget {

	function __construct() {

		parent::__construct(

			// base ID of the widget
			't4b_recent_posts_widget',

			// name of the widget
			__('Display Recent Posts', 't4b' ),

			// widget options
			array (
				'description' => __( 'A widget to display a number of recent posts in your blog.', 't4b' )
			)

		);

	}

	function form( $instance ) {

		$defaults = array(
			'title' => __('Recent Posts'),
			'numberofposts' => '5'
		);
		$instance = wp_parse_args( (array) $instance, $defaults );
		$title = $instance[ 'title' ];
		$numberofposts = $instance[ 'numberofposts' ];

		// markup for form ?>
		<p>
			<label for="<?php echo $this->get_field_id( 'title' ); ?>">Widget Title:</label>
			<input class="widefat" type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $title ); ?>" />
		</p>
		<p>
			<label for="<?php echo $this->get_field_id( 'numberofposts' ); ?>">Number of Posts:</label>
			<input class="widefat" type="text" id="<?php echo $this->get_field_id( 'numberofposts' ); ?>" name="<?php echo $this->get_field_name( 'numberofposts' ); ?>" value="<?php echo esc_attr( $numberofposts ); ?>" />
		</p>

		<?php
	}

	function update( $new_instance, $old_instance ) {

		$instance = $old_instance;
		$instance[ 'title' ] = strip_tags( $new_instance[ 'title' ] );
		$instance['numberofposts'] = $new_instance['numberofposts'];
		return $instance;

	}

	function widget( $args, $instance ) {
		extract( $args );
		$title = apply_filters('widget_title', $instance['title'] );
		$count = $instance['numberofposts'];
		echo $before_widget;

		if ( $title )
			echo $before_title . $title . $after_title;

		echo '<ul>' . display_recent_post($count) . '</ul>';

		echo $after_widget;
	}
}
?>
<?php
/* registers the widget. */
function t4b_register_recent_posts_widget() {
	register_widget( 'T4B_Recent_Posts_Widget' );
}
add_action( 'widgets_init', 't4b_register_recent_posts_widget' );
?>

সারসংক্ষেপ

পুরো সিরিজটিতে আমরা শিখলাম যে উইজেট কয়েকটি ধাপে তৈরি করতে হয়, এগুলো হলো:

  • উইজেট রেজিস্টার করা
  • উইজেটের ফাংশনগুলোকে ধারণ করার জন্য একটি ক্লাস তৈরি করা
  • উইজেট নির্মাণের জন্য একটি construct ফাংশন তৈরি করা
  • উইজেট স্ক্রিনে উইজেটের ফর্মের জন্য একটি form ফাংশন তৈরি করা
  • উইজেট যেন ফর্মটিকে আপডেট করতে পারে সেজন্য update ফাংশন তৈরি করা
  • উইজেটের আউটপুট দেখানোর জন্য widget ফাংশন তৈরি করা

আশা করি এখন আপনারা সহজেই উইজেট তৈরি করতে পারবেন। আজকের মতো এ পর্যন্তই। যদি সিরিজটি শিক্ষণীয় ও উপভোগ্য হয়ে থাকে, অবশ্যই শেয়ার করে অন্যদের সিরিজটির বিষয়ে জানাবেন। যদি আপনার কোন মতামত থেকে থাকে অথবা আপনি কোন কিছু সুপারিশ করতে চান, নিশ্চিন্তে নিচে মন্তব্য করতে পারেন, ধন্যবাদ।

Ads by T4B
বিজ্ঞাপন

নির্বাচিত টিপস মনোনয়ন

0

টিপসটি উপভোগ করেছেন?

এই টিপস এবং এরকম আরও টিপসের আপডেট পেতে হলে TiPS4BLOG নিউজলেটারে সাবস্ক্রাইব করতে ভুলবেন না!

আপনি আরো পছন্দ করতে পারেন

মতামত বন্ধ