ওয়ার্ডপ্রেস অ্যাডমিন প্যানেল টেবিলে একটি নতুন সর্টেবল কাস্টম কলাম যুক্ত করুন

টিউন করেছেনঃ | প্রকাশিত হয়েছেঃ 8:05 AM | টিউন বিভাগঃ
য়ার্ডপ্রেস অ্যাডমিন প্যানেল টেবিলে ডিফল্ট যে সেটআপ আছে সেটাই কাজের জন্য যথেষ্ট, কিন্তু মানুষের চাহিদার তো আর শেষ নাই! মনের মধ্যে সবসময় ইচ্ছা করে একটু এরকম হলে ভালো হতো, একটু ওরকম হলে ভালো হতো!! তো আজকের টিপসটি আপনাদের সেই ইচ্ছার তৃষ্ণা মেটানোরি একটা প্রয়াস বলতে পারেন। আজকে আমি দেখাবো, ওয়ার্ডপ্রেস অ্যাডমিন প্যানেল টেবিলে কিভাবে নিজের ইচ্ছামতো একটি নতুন কাস্টম কলাম যুক্ত করবেন।

রেজিস্টার কাস্টম কলাম

উদাহরণ হিসেবে আমরা ওয়ার্ডপ্রেস পোস্ট লিস্ট টেবিলে একটি নতুন কলাম যুক্ত করবো। এজন্য প্রথমে কাস্টম কলাম রেজিস্টার করতে হবে। এই কাজটি করার জন্য একটি ফিল্টার manage_posts_columnsব্যবহার করা হয়ে থাকে। এখন, এই ফিল্টারটি ব্যবহার করে নতুন কলাম যুক্ত করার জন্য নিচের কোডটি functions.php ফাইলে বসিয়ে দিনঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
2
3
4
5
add_filter('manage_posts_columns', ' t4b_new_post_columns ');
function t4b_new_post_columns($columns) {
    $columns['views'] = 'Views';
    return $columns;
}
উপরের ফাংশনটিতে একটি প্যারামিটার $columns নেওয়া হয়েছে যা সকল রেজিস্টার্ড কলামের জন্য array হিসেবে কাজ করে। একটি নতুন কলাম যুক্ত করার জন্য, আমাদেরকে শুধুমাত্র একটি নতুন উপাদান যুক্ত করতে হবে অ্যারের মধ্যে। উপরের কোডটিতে আমরা এই কাজটাই করেছি।
এই ফিল্টারটি ঠিকমতোই কাজ করে, কিন্তু এটি কাস্টম পোস্ট টাইপ সহ সকল পোস্ট ম্যানেজ পেজেই নতুন কলাম যুক্ত করে। সুতরাং, কেউ যদি নির্দিষ্ট পোস্ট টাইপ অনুযায়ী কাস্টম কলাম যুক্ত করতে চায়, তাহলে অন্য আরেকটি ফিল্টার manage_{$post_type}_posts_columns অথবা manage_edit-{$post_type}_columns ব্যবহার করতে হবে, যেখানে ‘{$post_type}’ হচ্ছে পোস্টের টাইপ।
উদাহরণস্বরূপ, যদি কাস্টম পোস্ট টাইপ product হয়ে থাকে, তাহলে উপরের কোডটিতে ফিল্টার হবে নিম্নরূপঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
add_filter('manage_product_posts_columns', ' t4b_new_post_columns ');
অথবা
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
add_filter('manage_edit-product_columns', ' t4b_new_post_columns ');
বাঁকি কোডগুলো আগের মতোই থাকবে।

নতুন কলামে ভ্যালূ যুক্ত করা

নতুন কলাম যুক্ত করা হয়েছে, এখন আমাদের উপযুক্ত মান দ্বারা কলামটি পূরণ করতে হবে। এজন্য আমরা একটি অ্যাকশন হুক manage_posts_custom_column ব্যবহার করবো। সুতরাং, ভ্যালূ যুক্ত করার জন্য নিচের কোডটি functions.php ফাইলে বসিয়ে দিনঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
2
3
4
5
6
7
8
9
10
11
add_action('manage_posts_custom_column''t4b_show_new_columns');
function t4b_show_new_columns($column_name) {
    global $post;
    switch ($column_name) {
        case 'views':
            $views = get_post_meta($post->ID, 'post_views_count', true);
            echo $views;
            break;
        default:
    }
}
উপরের ফাংশনটিতে $column_name নামে একটি প্যারামিটার ব্যবহার করা হয়েছে। আমাদেরকে এটি চেক করতে হবে, যদি এটা views (যেটা আমরা আগেই রেজিস্টার করেছি) হয়, তাহলে আমরা কাস্টম ফিল্ড ভ্যালূ পাবো এবং ভ্যালূগুলোকে নতুন কলামে প্রদর্শন করাতে পারবো।

পেজের জন্য

পেজের জন্য ফিল্টার হবে manage_pages_columns এবং অ্যাকশন হবে manage_pages_custom_column নিচের কোড অনুযায়ীঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
add_filter('manage_pages_columns', ' t4b_new_post_columns ');
এবং
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
add_action('manage_pages_custom_column''t4b_show_new_columns');

ইউজার লিস্ট টেবিলের জন্য

আপনার ওয়ার্ডপ্রেস সাইটে যদি ইউজার রেজিস্ট্রেশন সিস্টেম চালু থাকে, তাহলে খুবি স্বাভাবিক মাঝে মাঝেই নতুন নতুন নিবন্ধিত ইউজার পাবেন। সকল ইউজারদের লিস্ট অ্যাডমিন প্যানেলের ইউজার লিস্টে গেলে পাওয়া যাবে। এখানেও আমরা আগের নিয়মে কাস্টম কলাম যুক্ত করতে পারবো। আমাদেরকে শুধু functions.php ফাইলে ফিল্টারের জন্য লিখতে হবে manage_users_columns নিচের কোডের মতোঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
2
3
4
5
function t4b_modify_user_table( $column ) {
    $column['user_reg'] = 'নিবন্ধন তারিখ';
    return $column;
}
add_filter( 'manage_users_columns', 't4b_modify_user_table' );
এতেকরে ইউজার লিস্ট টেবিলে একটি নতুন কলাম যুক্ত হবে। এবার আমাদেরকে আরেকটি ফিল্টার manage_users_custom_column ব্যবহার করে কলামটিতে ভ্যালূ যুক্ত করতে হবে। এজন্য নিচের কোডটি functions.php ফাইলে বসিয়ে দিনঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
2
3
4
5
6
7
8
9
10
11
function t4b_modify_user_table_row( $val, $column_name, $user_id ) {
    $user = get_userdata( $user_id );
    switch ($column_name) {
        case 'user_reg' :
            return $user->user_registered;
            break;
        default:
    }
    return $return;
}
add_filter( 'manage_users_custom_column', 't4b_modify_user_table_row', 10, 3 );
ব্যাস! ভ্যালু যুক্ত হয়ে গেলো। এখন ইউজার লিস্টে গেলে দেখবেন নিবন্ধন তারিখ নামে যেই নতুন কলাম নিয়েছিলেন, সেখানে কোন ইউজার কবে নিবন্ধন করেছে সেই তারিখ প্রদর্শিত হচ্ছে।

কাস্টম কলামকে সর্টেবল করা

যেই কলামটি সর্টেবল হিসেবে রেজিস্টার করবো তা ওয়ার্ডপ্রেসকে বলার জন্য নিচের ফিল্টারটি ব্যবহৃত হয়ঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
manage_{$screen->id}_sortable_column
পোস্ট এবং পেজের ক্ষেত্রে, $screen->id হবে যথাক্রমে edit-post এবং edit-page, একিভাবে কাস্টম পোস্টের ক্ষেত্রে হবে edit-posttype. উদাহরণস্বরূপ পোস্টের ক্ষেত্রে নিচের কোডটি functions.php ফাইলে বসিয়ে দিনঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
2
3
4
5
function post_sortable_custom_column_views ($columns) {
    $columns['post_views'] = 'post_views';
    return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'post_sortable_custom_column_views');
$column array এর key ভ্যালূ একটি সর্টেবল কলাম নির্দেশিত করে, এবং এর ভ্যালূ ওয়ার্ডপ্রেসকে বলে orderby হিসেবে ক্যুয়েরিতে কি সেট কতে হবে।
সর্টেবল কলামকে আরও নিখুঁতভাবে পরিচালনা করার জন্য, অর্থাৎ মেটা ভ্যালূ দ্বারা সর্ট করার জন্য নিচের কোডটি functions.php ফাইলে বসিয়ে দিনঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
2
3
4
5
6
7
8
9
10
function sort_sortable_custom_column_views( $vars ) {
    if ( isset( $vars['orderby'] ) && 'post_views' == $vars['orderby'] ) {
        $vars = array_merge( $vars, array(
            'meta_key' => 'post_views_count', //Custom field key
            'orderby' => 'meta_value_num') //Custom field value (number)
        );
    }
    return $vars;
}
add_filter( 'request', 'sort_sortable_custom_column_views' );
এই ফাংশনটি চেক করবে, যদি আমাদের ক্যুয়েরি post_views দ্বারা অর্ডারিং করা হয়, তাহলে এটা ওয়ার্ডপ্রেসকে বলবে post_views_count পোস্ট মেটার ভ্যালূকে সংখ্যাসূচকভাবে অর্ডার করার জন্য।
ইউজার টেবিলে যেই কলাম যুক্ত করা হয়েছে সেটিকেও সর্ট করা সম্ভব। এজন্য manage_users_sortable_columns ফিল্টার ব্যবহার করতে হবে। সর্টিং করার জন্য আপনাকে নিচের কোডটুকু functions.php ফাইলে বসিয়ে দিতে হবেঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
2
3
4
5
function t4b_sortable_user_table_columns( $column ) {
    $column[ 'user_reg' ] = 'user_registered';
    return $column;
}
add_filter( 'manage_users_sortable_columns', 't4b_sortable_user_table_columns' );
এবার নিবন্ধন তারিখ কলামের উপর মাউস ধরলে দেখবেন একটা তীর চিহ্ন দেখাচ্ছে। চিহ্নটির উপর ক্লিক করে আপনি কলামটিকে খুব সহজেই অ্যাসেন্ডিং অথবা ডিসেন্ডিং অর্ডারে সাজাতে পারবেন। এতে করে আপনি এখন খুব সহজেই দ্রুত জানতে পারছেন আপনার ব্লগে সর্বশেষ কে নিবন্ধন করেছে।
এভাবে নিজের পছন্দানুযায়ী যেকোনো ডাটা নতুন কাস্টম কলাম হিসেবে ওয়ার্ডপ্রেস অ্যাডমিন প্যানেলের টেবিল লিস্টে যুক্ত করা যাবে। এজন্য আরও বিস্তারিত পড়াশুনা করতে হবে। উপরের উদাহরণগুলো শুধুমাত্র একটা ধারনা হিসেবে কাজে লাগতে পারে।
আজকের মতো এ পর্যন্তই। আগামীতে আশা করি নতুন কোন টিপস নিয়ে হাজির হবো। যদি টিপসটি উপভোগ করে থাকেন এবং আপনার উপকারে এসে থাকে, তাহলে অবশ্যই শেয়ার করে অন্যদের জানাবেন। যদি আপনার কোন মতামত থেকে থাকে অথবা আপনি কোন কিছু সুপারিশ করতে চান, নিশ্চিন্তে নিচে মন্তব্য করতে পারেন। সময় নিয়ে টিপসটি পড়ার জন্য এবং আপনার মূল্যবান পরামর্শের জন্য ধন্যবাদ।

Previous
Next Post »
Designed by MS Design

Powered by Blogger