ওয়ার্ডপ্রেস সাইটে প্লাগিনের বিকল্প হিসাবে ম্যানুয়াল কোডের ব্যবহার

আসসালামু আলাইকুম । আমার পক্ষ থেকে টিটির সকল অভিজ্ঞ বড় ভাইয়াদেরকে সালাম জানাই । আশা করি সকলেই ভাল আছেন । যাই হোক বেশি কথা না বলে আসল কথায় আসি । বর্তমানে সব থেকে জনপ্রিয় ব্লগিং CMS হচ্ছে ওয়ার্ডপ্রেস । তবে ওয়ার্ডপ্রেসের ব্যবহার শুধু ব্লগিং - এই সীমাবদ্ধ নেই । এমন অনেক কিছুই করা যায় ওয়ার্ডপ্রেস দিয়ে যা আপনি কল্পনাও করতে পারবেন না । যদি পারেন তাহলে আমার দোষ না :mrgreen: এসব নিয়ে অন্য একদিন আলোচনা করব ।  ওয়ার্ডপ্রেস সাইট চালান অথচ প্লাগিন ব্যবহার করেন না এরকম লোক গুগলেও খুজে পাওয়া দুস্কর! আসলে প্লাগিনকে ওয়ার্ডপ্রেস সাইটের  প্রাণ বলা যেতে পারে ।

প্লাগিনের ব্যবহার যেভাবে আপনার সাইটকে উন্নত করতে সাহায্য করে আবার অতিরিক্ত প্লাগিনের ব্যবহার আপনার সাইটকে স্লো করে দিতে পারে । তাছাড়া অনেক ফ্রি/Nulled প্লাগিনে ক্ষতিকারক কোড লুকিয়ে থাকে । যেগুলা আপনার সাইটে Backdoor সৃষ্টি করে । জ্বি, ব্যাকডোর অর্থ পেছনের দরজা । বাড়ির সামনের দরজায় তালা ঝুলিয়ে রেখে যদি আপনি পেছনের দরজা খুলে রাখেন, তাহলে চোরের আসতে কোন অসুবিধাই হবে না । একইভাবে এইসব প্লাগিনে লুকিয়ে থাকা ব্যাকডোর আপনার সাইটকে হ্যাকারদের জন্য উন্মুক্ত করে দেয় । এখন আপনি বলবেন যে, "অনেকেই দেখি এরকম প্লাগিন ব্যবহার করে, কিন্তু কিছুই হয় না" ।

হুম আপনার কথা ঠিক আছে । কিন্তু আমি এমন অনেকে লোককে জানি, যাদের সাইট প্লাগিন ইনষ্টলের কয়েক মাস পরে সাইট হ্যাক হয়েছে । তবে কি আপনি প্লাগিনের ব্যবহার বন্ধ করে দেবেন? না কখনোই না । তবে যেসব কাজ সহজেই করা যায় কয়েক লাইনের কোড লিখে, সেসব কাজের জন্য প্লাগিন ব্যবহার করা অযৈক্তিক । এই সিরিজে আমি সেটাই তুলে ধরব । অভিজ্ঞ যারা আছেন তারা আমার ভুল গুলো শুধরে দেবেন আশা করি ।

এই কোডগুলা ব্যবহারের সময় FTP/cPanel File Manager ব্যবহার করলে সবচেয়ে ভাল হয় । কারণ ওয়ার্ডপ্রেস দিয়ে এডিট করার সময়(Apparance > Editor > functions.php ) ভুল হলে সাইট এক্সেস করা যায় না । কোডগুলা আপনার থিমের functions.php ফাইলের একদম শেষের ;?> এর আগে বসাবেন ।  যদি পিএইচপি সম্পর্কে ধারণা থাকে তাহলে আপনার ইচ্ছামত বসাতে পারেন ।

সাইটের সকল নতুন পোষ্ট  সব সদস্যের ইমেইলে পাঠানো

//Sends new post list automatically to all users email

function newPostNotify($post_ID) {
if( wp_is_post_revision($post_ID) ) return;
global $wpdb;
$get_post_info = get_post($post_ID);
if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {
// Get all of the emails from the database
$wp_user_email = $wpdb->get_results("SELECT DISTINCT user_email FROM $wpdb->users");
// Send emails to each of registered users
foreach ( $wp_user_email as $email ) {
// Email subject
$subject = 'New Posts from MirazMac.Info ';
// Messages:new post url:+ URL
$message = 'View this new post now:' . get_permalink($post_ID);
// Send email
wp_mail($email->user_email, $subject, $message);
}
}
}

add_action('publish_post', 'newPostNotify');

সাইটের টুলবার থেকে অপ্রয়োজনীয় মেনু রিমুভ করা

##Removing Unusal menu##

function hide_yoastseo() {
remove_action('admin_bar_menu', 'wpseo_admin_bar_menu',95);
remove_menu_page('wpseo_dashboard');
}
add_action( 'admin_init', 'hide_yoastseo');
#Remove Contact Form 7 Links from dashboard menu items if not admin #
if (!(current_user_can('administrator'))) {
function remove_wpcf7() {
remove_menu_page( 'wpcf7' );
}

add_action('admin_menu', 'remove_wpcf7');
}

এডমিন প্যানেল থেকে হেল্প এন্ট্রি রিমুভ করা

add_filter( 'contextual_help', 'mytheme_remove_help_tabs', 999, 3 );
function mytheme_remove_help_tabs($old_help, $screen_id, $screen){
$screen->remove_help_tabs();
return $old_help;
}

Widget ও মেনুতে Shortcode এবং পিএইচপি সাপোর্ট যোগ করা

//Adding Shortcodes support
add_filter('wp_nav_menu_items', 'do_shortcode');
add_filter('widget_text', 'do_shortcode');

//Adding PHP Support
add_filter('widget_text','execute_php',100);
function execute_php($html){
if(strpos($html,"<"."?php")!==false){
ob_start();
eval("?".">".$html);
$html=ob_get_contents();
ob_end_clean();
}
return $html;
}

লগ ইন পেইজে নিজের ইচ্ছা মত মেসেজ দেখানো

// custom login message
function custom_login_message() {
$message = "<div style='background: none repeat scroll 0% 0% #F8FFC7;
padding: 8px;
text-align: center;
color: #9E9E9E;
border: 1px solid #E7E7BD;'>If you already have an account in <b>MiraZMac.Info</b>, then Log In below. Otherwise Click Register and create an account to start writing posts.</div>";
return $message;
}
add_filter('login_message', 'custom_login_message'); 

N.B: উপরের কোডের $message=".." এখানে আপনার ইচ্ছামত মেসেজ দিতে পারেন (HTML Supported)

সকল পোষ্টের প্রথম ইমেইজকে ফিচারড ইমেইজ হিসেবে সেট করতে(যদি ফিচারড ইমেইজ না থাকে)

function auto_featured_image() {
global $post;

if (!has_post_thumbnail($post->ID)) {
$attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );

if ($attached_image) {
foreach ($attached_image as $attachment_id => $attachment) {
set_post_thumbnail($post->ID, $attachment_id);
}
}
}
}
// Use it temporary to generate all featured images
add_action('the_post', 'auto_featured_image');
// Used for new posts
add_action('save_post', 'auto_featured_image');
add_action('draft_to_publish', 'auto_featured_image');
add_action('new_to_publish', 'auto_featured_image');
add_action('pending_to_publish', 'auto_featured_image');
add_action('future_to_publish', 'auto_featured_image');

ব্যাকেন্ডে শুধুমাত্র নিজের পোষ্ট ও কমেন্ট দেখাতে

## Only Users post in Backend ##
function posts_for_current_author($query) {
global $user_level;

if($query->is_admin && $user_level < 5) {
global $user_ID;
$query->set('author',  $user_ID);
unset($user_ID);
}
unset($user_level);

return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');

## Only Users own post comment##
function wps_get_comment_list_by_user($clauses) {
if (is_admin()) {
global $user_ID, $wpdb;
$clauses['join'] = ", ".$wpdb->base_prefix."posts";
$clauses['where'] .= " AND ".$wpdb->base_prefix."posts.post_author = ".$user_ID." AND ".$wpdb->base_prefix."comments.comment_post_ID = ".$wpdb->base_prefix."posts.ID";
};
return $clauses;
};
if(!current_user_can('edit_others_posts')) {
add_filter('comments_clauses', 'wps_get_comment_list_by_user');
}

এডমিন প্যানেল থেকে অপ্রয়োজনীয় বক্স দূর করতে

function remove_dashboard_widgets() {
global $wp_meta_boxes;

unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);

}

আপাতত এই পর্যন্তই । ভাল লাগলে মন্তব্য করতে ভুলবেন না ।

 আমার আগের করা কিছু টিউনঃ

আর কোন অসুবিধা হলে অবশ্যই জানাবেন । সময় পেলে আমার সাইট থেকে ঘুরে আসতে পারেন ।

Level 2

আমি মিরাজ ম্যাক। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 10 বছর 2 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 10 টি টিউন ও 53 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

AFK


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

সাইটের সকল নতুন পোষ্ট সব সদস্যের ইমেইলে পাঠাতে চাই কিন্তু HTML format এ – Code জানা থাকলে শীঘ্রই জানান।

Level 0

Site এর mobile version এর জন্য Sub domain (Like: m.facebook.com) এ redirect করাতে চাই।

Level 2

Darun…

বেশ কাজের, আমাকে একটা ভালো ব্লগ থিম দেন তো। সিঙ্গেল কলুম, ফিচারড ইমেজ থাকবে। সিম্পল কিন্তু সুন্দর। প্লিজ প্লিজ প্লিজ

সরাসরি প্রিয়তে,খুবই ভাল লাগলো। ধন্যবাদ।

আয় হায়, ছেলে টা দেখি মহা ভালো লিখতেছে ! থ্যাঙ্কস ভাইয়া

“সাইটের সকল নতুন পোষ্ট সব সদস্যের ইমেইলে পাঠানো” এই কোডটি ব্যাবহার করলে হস্টিং একাউন্ট সাসপেন্ড হবে screenshoot: http://i.imgur.com/a9SPyX3.jpg অন্যগুলো ভাল কাজ করবে আশাকরি।