আসালামু ওয়ালাইকুম,
আমি তানভীর হোসেন আপনাদের মাঝে প্লাগিন ডেভোলপমেন্ট এর টিউটোরিয়াল নিয়ে এসেছি। আপনারা অনেকেই এই বিষয় শিখতে আগ্রহী আমি বিগত সিরিজে একটি থিম ডেভেলপমেন্ট করেছি এবং সেটিকে একটি পূর্নাঙ্গ ব্যবহারের জন্য ডিজাইন
করেছি। তবে কিছু কাজ সম্পাদনা করা বাকি রয়েছে সেগুলো হলেই আমি থিম ডেভেলপমেন্ট এর ২য় সিরিজটি লঞ্চ করবো। এর মধ্যে দিয়ে যে সময়টুকু পাচ্ছি তাতে আপনাদের ওয়ার্ডপ্রেস এর জন্য একটি গুরুত্বপূর্ণ প্লাগিন ডেভোলপ করা শিখাব। যা ওয়েব সাইটের স্পিড এসইও ও অন্যান্য কাজে সাহায্য করবে।
প্লাগিনটা কিছুটা WP Optimizer এর মতো।
এই বলে আমি আমার উদ্দেশ্য প্রনোদিত করেছি।
কোড কপি করতে সমস্যা হলে
ওয়ার্ডপ্রেস প্লাগিন ডেভেলপমেন্ট: কাস্টমাইজড সেটিংস পেজ এবং ক্রন জব ইন্টারফেস (পর্ব ৭)
গত পর্বে আমরা শিখেছি কীভাবে ডেটাবেজ ক্লিনআপ এবং ইমেইল নোটিফিকেশন অটোমেট করা যায়। আজকের পর্বে আমরা প্লাগিনে একটি কাস্টম সেটিংস পেজ তৈরি করবো, যেখানে ইউজাররা তাদের প্রয়োজনমতো ক্রন জব ইন্টারভাল এবং অন্যান্য সেটিংস কাস্টমাইজ করতে পারবে।
পর্ব ৭-এর লক্ষ্য
১. কাস্টমাইজড সেটিংস পেজ তৈরি করা।
২. ক্রন জব ইন্টারভাল পরিবর্তন করার ফিচার যুক্ত করা।
৩. ইউজারদের জন্য সহজে ব্যবহারযোগ্য একটি ইন্টারফেস তৈরি করা।
স্টেপ ১: কাস্টম সেটিংস পেজ তৈরি
প্রথমে আমরা প্লাগিনে একটি সেটিংস মেনু তৈরি করবো, যা অ্যাডমিন প্যানেলে প্রদর্শিত হবে।
কোড যোগ করুন includes/settings-page.php
ফাইলে:
<?php
function speed_optimizer_add_settings_page() {
add_menu_page(
'Speed Optimizer Settings', // পেজের নাম
'Optimizer Settings', // মেনু টাইটেল
'manage_options', // কেবল অ্যাডমিন দেখতে পারবে
'speed-optimizer-settings', // স্লাগ
'speed_optimizer_render_settings_page', // কলব্যাক ফাংশন
'dashicons-admin-generic', // আইকন
80 // অবস্থান
);
}
add_action('admin_menu', 'speed_optimizer_add_settings_page');
// Render Settings Page
function speed_optimizer_render_settings_page() {
?>
<div class="wrap">
<h1>Speed Optimizer Settings</h1>
<form method="post" action="options.php">
<?php
settings_fields('speed_optimizer_settings');
do_settings_sections('speed-optimizer-settings');
submit_button();
?>
</form>
</div>
<?php
}
স্টেপ ২: সেটিংস ফিল্ড নিবন্ধন করা
ইউজারদের জন্য ফিল্ড তৈরি করতে হবে যেখানে তারা তাদের ক্রন জব ইন্টারভাল সেট করতে পারবে।
কোড যুক্ত করুন includes/settings-page.php
ফাইলে:
function speed_optimizer_register_settings() {
register_setting('speed_optimizer_settings', 'speed_optimizer_cron_interval');
add_settings_section(
'speed_optimizer_main_settings',
'Main Settings',
null,
'speed-optimizer-settings'
);
add_settings_field(
'speed_optimizer_cron_interval',
'Cron Job Interval',
'speed_optimizer_cron_interval_callback',
'speed-optimizer-settings',
'speed_optimizer_main_settings'
);
}
add_action('admin_init', 'speed_optimizer_register_settings');
function speed_optimizer_cron_interval_callback() {
$interval = get_option('speed_optimizer_cron_interval', 'daily');
?>
<select name="speed_optimizer_cron_interval">
<option value="hourly" <?php selected($interval, 'hourly'); ?>>Hourly</option>
<option value="twicedaily" <?php selected($interval, 'twicedaily'); ?>>Twice Daily</option>
<option value="daily" <?php selected($interval, 'daily'); ?>>Daily</option>
</select>
<?php
}
স্টেপ ৩: ক্রন জব ইন্টারভাল কাস্টমাইজ করা
ইউজারদের নির্ধারিত ইন্টারভাল অনুযায়ী ক্রন জব রিসেট করতে হবে।
কোড যোগ করুন includes/db-automation.php
ফাইলে:
function speed_optimizer_reset_cron_schedule() {
$interval = get_option('speed_optimizer_cron_interval', 'daily');
// Remove existing schedule
wp_clear_scheduled_hook('speed_optimizer_cleanup_event');
// Add new schedule
if (!wp_next_scheduled('speed_optimizer_cleanup_event')) {
wp_schedule_event(time(), $interval, 'speed_optimizer_cleanup_event');
}
}
add_action('update_option_speed_optimizer_cron_interval', 'speed_optimizer_reset_cron_schedule');
স্টাইলিং অ্যাড করা
সেটিংস পেজকে সুন্দর করার জন্য কিছু সিএসএস যোগ করা যায়।
কোড যুক্ত করুন assets/css/admin-style.css
ফাইলে:
.wrap h1 {
color: #333;
font-size: 24px;
font-weight: bold;
}
form select {
padding: 8px;
font-size: 16px;
margin-top: 10px;
}
স্টেপ ৪: স্ক্রিপ্ট লোড করা
মেইন ফাইলে যোগ করুন:
function speed_optimizer_admin_assets() {
wp_enqueue_style('speed-optimizer-admin-style', plugin_dir_url(__FILE__) . 'assets/css/admin-style.css');
}
add_action('admin_enqueue_scripts', 'speed_optimizer_admin_assets');
পরীক্ষা করে দেখুন
১. আপনার অ্যাডমিন প্যানেলে "Optimizer Settings" নামে একটি নতুন মেনু আসবে।
২. এখানে গিয়ে ক্রন জব ইন্টারভাল পরিবর্তন করুন।
৩. প্লাগিনটি সেভ করার পর ক্রন জব সেটআপ রিসেট হয়ে যাবে।
অটোমেটেড ও ব্যবহারকারী-বান্ধব ফিচার
এই সেটিংস পেজের মাধ্যমে আপনার প্লাগিন আরও ব্যবহারকারী-বান্ধব হয়ে উঠেছে। এখন ইউজাররা সহজেই তাদের প্রয়োজন অনুযায়ী টাস্ক কাস্টমাইজ করতে পারবে।
পর্ব ৭-এর সংক্ষিপ্তসার
১. আমরা একটি কাস্টম সেটিংস পেজ তৈরি করলাম।
২. ইউজাররা ক্রন জব ইন্টারভাল পরিবর্তন করতে পারবে।
৩. নতুন সেটিংস অনুযায়ী ক্রন জব রিসেট হবে।
পরবর্তী পর্বে (পর্ব ৮):
আমরা শিখবো কীভাবে Lazy Load ফিচার প্লাগিনে যুক্ত করা যায়। এটি ওয়েবসাইটের পারফরম্যান্স বৃদ্ধিতে সহায়তা করবে।
পর্ব ৮-এ দেখা হবে!