বাংলায় WordPress Plugin Development – পর্ব ০৬

Ads Inside Post

বাংলায় WordPress Plugin Development – পর্ব ০৬

আসালামু ওয়ালাইকুম,
আমি তানভীর হোসেন
আপনাদের মাঝে প্লাগিন ডেভোলপমেন্ট এর টিউটোরিয়াল নিয়ে এসেছি। আপনারা অনেকেই এই বিষয় শিখতে আগ্রহী আমি বিগত সিরিজে একটি থিম ডেভেলপমেন্ট করেছি এবং সেটিকে একটি পূর্নাঙ্গ ব্যবহারের জন্য ডিজাইন
করেছি। তবে কিছু কাজ সম্পাদনা করা বাকি রয়েছে সেগুলো হলেই আমি থিম ডেভেলপমেন্ট এর ২য় সিরিজটি লঞ্চ করবো। এর মধ্যে দিয়ে যে সময়টুকু পাচ্ছি তাতে আপনাদের ওয়ার্ডপ্রেস এর জন্য একটি গুরুত্বপূর্ণ প্লাগিন ডেভোলপ করা শিখাব। যা ওয়েব সাইটের স্পিড এসইও ও অন্যান্য কাজে সাহায্য করবে।
প্লাগিনটা কিছুটা WP Optimizer এর মতো।
এই বলে আমি আমার উদ্দেশ্য প্রনোদিত করেছি।
কোড কপি করতে সমস্যা হলে

সরাসরি কোড গুলো এখান থেকে কপি করে নিন।

ওয়ার্ডপ্রেস প্লাগিন ডেভেলপমেন্ট: অটোমেটেড টাস্কস ও স্ক্রিপ্টিং (পর্ব ৬)

আগের পর্বে আমরা ওয়ার্ডপ্রেস ডেটাবেজ অপ্টিমাইজেশন নিয়ে কাজ করেছি। আজকের পর্বে আমরা শিখবো কীভাবে ডেটাবেজ ক্লিনআপসহ অন্যান্য ফিচারগুলো স্বয়ংক্রিয় (Automated) করা যায়। অটোমেটেড টাস্কস প্লাগিনের কার্যক্ষমতা অনেক বাড়িয়ে দেয়, কারণ ম্যানুয়ালি কাজ করার সময় বাঁচে।


পর্ব ৬-এর লক্ষ্য

এই পর্বে আমরা শিখবো:

  1. ওয়ার্ডপ্রেস ক্রন জব (WP-Cron) কী এবং কেন ব্যবহার করা হয়।
  2. কীভাবে ক্রন জব ব্যবহার করে ডেটাবেজ ক্লিনআপ অটোমেট করা যায়।
  3. অটোমেটেড ইমেইল রিপোর্ট জেনারেট করা।

ওয়ার্ডপ্রেস ক্রন জব: সংক্ষেপে

ওয়ার্ডপ্রেসে ক্রন জব হলো একটি বিল্ট-ইন সিস্টেম, যা পূর্বনির্ধারিত সময়ে নির্দিষ্ট টাস্ক এক্সিকিউট করতে ব্যবহৃত হয়। উদাহরণস্বরূপ:

  • অটোমেটেড ব্যাকআপ।
  • পোস্ট শিডিউল করা।
  • অপ্রয়োজনীয় ডেটা ক্লিনআপ।

স্টেপ ১: ক্রন জব সেটআপ করা

প্রথমেই আমরা একটি ক্রন জব তৈরি করবো, যা নির্দিষ্ট সময় পরপর ডেটাবেজ ক্লিনআপ করবে।

কোড যুক্ত করুন includes/db-automation.php ফাইলে:

<?php

// Schedule event on plugin activation
register_activation_hook(__FILE__, 'speed_optimizer_schedule_cleanup');

function speed_optimizer_schedule_cleanup() {
    if (!wp_next_scheduled('speed_optimizer_cleanup_event')) {
        wp_schedule_event(time(), 'daily', 'speed_optimizer_cleanup_event');
    }
}

// Clear schedule on plugin deactivation
register_deactivation_hook(__FILE__, 'speed_optimizer_clear_schedule');

function speed_optimizer_clear_schedule() {
    wp_clear_scheduled_hook('speed_optimizer_cleanup_event');
}

// Hook into scheduled event
add_action('speed_optimizer_cleanup_event', 'speed_optimizer_run_cleanup');

function speed_optimizer_run_cleanup() {
    global $wpdb;

    // Delete revisions
    $wpdb->query("DELETE FROM $wpdb->posts WHERE post_type = 'revision'");

    // Delete trashed posts
    $wpdb->query("DELETE FROM $wpdb->posts WHERE post_status = 'trash'");

    // Delete spam and trashed comments
    $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_approved = 'spam' OR comment_approved = 'trash'");

    // Delete expired transients
    $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE '_transient_%' AND option_value < NOW()");
}

স্টেপ ২: মেইন ফাইলে যুক্ত করা

মেইন ফাইলে (যেমন: speed-optimizer.php) নিচের লাইনটি যোগ করুন:

require_once plugin_dir_path(__FILE__) . 'includes/db-automation.php';

কোড ব্যাখ্যা

  1. register_activation_hook: প্লাগিন অ্যাকটিভ হলে ডেইলি ক্রন জব সেটআপ করে।
  2. register_deactivation_hook: প্লাগিন ডিএ্যাকটিভ হলে ক্রন জব বন্ধ করে।
  3. wp_schedule_event: নির্দিষ্ট ইন্টারভালে টাস্ক শিডিউল করে।
  4. speed_optimizer_run_cleanup: ক্রন জব চলাকালে ডেটাবেজ ক্লিনআপের কাজ করে।

স্টেপ ৩: ইমেইল রিপোর্ট যোগ করা

ডেটাবেজ ক্লিনআপ সফলভাবে হয়েছে কিনা, তা ইমেইলের মাধ্যমে নোটিফাই করা যায়।

কোড আপডেট করুন db-automation.php ফাইলে:

function speed_optimizer_run_cleanup() {
    global $wpdb;

    // Perform cleanup
    $revisions_deleted = $wpdb->query("DELETE FROM $wpdb->posts WHERE post_type = 'revision'");
    $trashed_posts_deleted = $wpdb->query("DELETE FROM $wpdb->posts WHERE post_status = 'trash'");
    $spam_comments_deleted = $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_approved = 'spam' OR comment_approved = 'trash'");
    $expired_transients_deleted = $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE '_transient_%' AND option_value < NOW()");

    // Send email report
    $to = get_option('admin_email');
    $subject = 'Database Cleanup Report';
    $message = "Cleanup completed successfully. Here are the details:\n\n";
    $message .= "Revisions deleted: $revisions_deleted\n";
    $message .= "Trashed posts deleted: $trashed_posts_deleted\n";
    $message .= "Spam comments deleted: $spam_comments_deleted\n";
    $message .= "Expired transients deleted: $expired_transients_deleted\n";

    wp_mail($to, $subject, $message);
}

স্টেপ ৪: ক্রন জব মনিটরিং করা

ডিফল্টভাবে ক্রন জব ওয়ার্ডপ্রেসের ভিজিটর ট্রাফিকের উপর নির্ভর করে ট্রিগার হয়। তবে আমরা চাইলে WP Control প্লাগিন দিয়ে ক্রন জব মনিটর করতে পারি।

WP Control ব্যবহার:

  1. ইনস্টল করুন: প্লাগিন ডিরেক্টরি থেকে WP Control ইনস্টল করুন।
  2. ক্রন ইভেন্ট চেক করুন: টুলস > ক্রন ইভেন্টস-এ যান।
  3. আমাদের তৈরি করা speed_optimizer_cleanup_event দেখতে পাবেন।

অটোমেশন ও পারফরম্যান্স ইমপ্রুভমেন্ট

অটোমেটেড ফিচারগুলো সাইটের পারফরম্যান্সের জন্য খুবই কার্যকর। ডেটাবেজ ক্লিনআপের পাশাপাশি আরও কাজ অটোমেট করা যেতে পারে:

  1. সাইট ব্যাকআপ: নিয়মিত ব্যাকআপের জন্য ক্রন জব ব্যবহার করা।
  2. ইমেজ অপ্টিমাইজেশন: নতুন ইমেজ আপলোড হওয়ার সাথে সাথে অপ্টিমাইজ করা।
  3. প্লাগিন আপডেট নোটিফিকেশন: অটোমেটেড ইমেইলের মাধ্যমে নোটিফাই করা।

পর্ব ৬-এর সংক্ষিপ্তসার

আজকের পর্বে আমরা শিখলাম:

  1. ক্রন জব ব্যবহার করে ডেটাবেজ ক্লিনআপ অটোমেট করা।
  2. ইমেইলের মাধ্যমে ক্লিনআপ রিপোর্ট পাঠানো।
  3. WP Control দিয়ে ক্রন ইভেন্ট মনিটর করা।

পরবর্তী পর্বে (পর্ব ৭):
আমরা একটি সেটিংস পেজ তৈরি করবো, যেখানে ইউজাররা ক্রন জব ইন্টারভাল কাস্টমাইজ করতে পারবে।

পর্ব ৭-এ দেখা হবে!

Telegram IconMy Telegram

The post বাংলায় WordPress Plugin Development – পর্ব ০৬ appeared first on Trickbd.com.






একটি মন্তব্য পোস্ট করুন

0 মন্তব্যসমূহ