ওয়ার্ডপ্রেসের User Profie-এ নতুন Field যোগ করুন

কিছু ওয়ার্ডপ্রেস ব্লগে দেখবেন User Profile পেইজে (www.yoursite.com/wp-admin/profile.php) অতিরিক্ত কিছু ফিল্ড থাকে। যেমনঃ ফোন নম্বর, ফেইসবুক ইউজারনেইম অথবা ঠিকানা ইত্যাদি। আমি এই জিনিসটার প্রয়োজনবোধ করতাম খুব। শুরুর দিকে এর জন্যে একটা প্লাগিন ব্যবহার করতাম। তারপর সেই একই সমস্যা, প্লাগিন সাইট স্লো করে দেয়। অগত্য কোড মডিফাই-এর দ্বারস্থ হওয়া।

বরাবরের মতোই নিচের কোডগুলো আপনার থিমের functions.php ফাইলে যুক্ত করে দিন। নিচে ব্যাখ্যা করেছি-

কোড শুরুঃ

 

function fb_add_custom_user_profile_fields( $user ) {
?>
<h3><?php _e('New Section Title', 'your_textdomain'); ?></h3>
<table>
<tr>
<th>
<label for="address"><?php _e('Location', 'your_textdomain'); ?></label>
</th>
<td>
<input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" /><br />
</td>
</tr>
<tr>
<th>
<label for="phone"><?php _e('Phone Number', 'your_textdomain'); ?></label>
</th>
<td>
<input type="text" name="phone" id="phone" value="<?php echo esc_attr( get_the_author_meta( 'phone', $user->ID ) ); ?>" /><br />
<span><?php _e('Enter Your Phone Number', 'your_textdomain'); ?></span-->
</td>
</tr>
</table>
<?php }
function fb_save_custom_user_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return FALSE;
update_usermeta( $user_id, 'address', $_POST['address'] );
update_usermeta( $user_id, 'phone', $_POST['phone'] );
}
add_action( 'show_user_profile', 'fb_add_custom_user_profile_fields' );
add_action( 'edit_user_profile', 'fb_add_custom_user_profile_fields' );
add_action( 'personal_options_update', 'fb_save_custom_user_profile_fields' );
add_action( 'edit_user_profile_update', 'fb_save_custom_user_profile_fields' );

ব্যাখ্যাঃ
এখানে যে কোড দেওয়া আছে, সেটা Profile পেইজে Location এবং Phone Number নামে দুইটা নতুন Field করবে। লাল কোডগুলো Location এবং নীল কোডগুলো Phone Number-এর জন্যে। খেয়াল করুন, Location যুক্ত করার জন্যে আমরা নিচের কোডটুকু যোগ করেছি-
<tr>
<th>
<label for="address"><?php _e('Location', 'your_textdomain'); ?></label>
</th>
<td>
<input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" /><br />
</td>
</tr>

(ধরা যাক, লাল রঙয়ের এই অংশের নাম Part-A) এই কোড আপনার প্রোফাইল পেইজে একটা ফিল্ড যোগ করবে। কিন্তু ইউজার সেই ফিল্ডে যে তথ্য দিবেন, সেটা save করতে হলে নিচের কোডটুকু যোগ করতে হবে-
update_usermeta( $user_id, 'address', $_POST['address'] );
(ধরা যাক, নীল রঙয়ের এই অংশের নাম Part-B) এভাবে আপনি যতগুলো ফিল্ড যোগ করতে চান, Part-A এবং Part-B’কে ততবার কপি করে দিন। এবং খেয়াল করুন, প্রতিটি ফিল্ডের জন্যে address শব্দটাকে (বোল্ড করে দিয়েছি, খেয়াল করুন।) নতুন নতুন শব্দ দিয়ে Replace করুন। যেমনঃ আপনি যদি রক্তের গ্রুপের জন্যে একটা ফিল্ড যোগ করতে চান, তাহলে Part-A এবং Part-B’তে যতগুলো address লেখা আছে, সবগুলোকে blood_group (অথবা আপনার পছন্দমতো শব্দ) বসিয়ে দিন। এবং অবশ্যই রক্তের গ্রুপের জন্যে যেটা Part-A সেটাকে আগের Part-A’র পরেই এবং নতুন Part-B’কে আগের Part-B’র নিচেই বসান।
আমি চেষ্টা করেছি একেবারে সোজা ভাষায় ব্যাখ্যা করতে। এরপরেও যদি কেউ না বুঝতে পারেন, তাহলে অবশ্যই মন্তব্য করুন।

ওয়ার্ডপ্রেস সংক্রান্ত আরও কিছু লেখাঃ

Level 0

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


টিউনস


আরও টিউনস


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


টিউমেন্টস

ধন্যবাদ ভাই, আপনার টিউনের জন্য।

thanks

Level 0

ব্যাখ্যাসহ বুঝানোর জন্য ধন্যবাদ। তবে আরেকটু সহজ করে দেবেন।

ভালো জিনিস………