আমি এটি সম্পর্কে একটি সপ্তাহ আগে পোস্ট করেছি http://en.bainternet.info/2011/wordpress-category-extra-fields
আশাকরি এটা সাহায্য করবে.
ওহদ।
পোস্টের বিশদটি এখানে:
প্রথম জিনিসটি আমাদের করা দরকার হুক edit_category_for_fields ব্যবহার করে বিভাগ সম্পাদনা ফর্মের অতিরিক্ত ক্ষেত্রগুলি যুক্ত করা এবং আমরা একটি সাধারণ ফাংশন ব্যবহার করব যা অতিরিক্ত ক্ষেত্রগুলি মুদ্রণ করবে।
<?php
//add extra fields to category edit form hook
add_action ( 'edit_category_form_fields', 'extra_category_fields');
//add extra fields to category edit form callback function
function extra_category_fields( $tag ) { //check for existing featured ID
$t_id = $tag->term_id;
$cat_meta = get_option( "category_$t_id");
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="cat_Image_url"><?php _e('Category Image Url'); ?></label></th>
<td>
<input type="text" name="Cat_meta[img]" id="Cat_meta[img]" size="3" style="width:60%;" value="<?php echo $cat_meta['img'] ? $cat_meta['img'] : ''; ?>"><br />
<span class="description"><?php _e('Image for category: use full url with '); ?></span>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="extra1"><?php _e('extra field'); ?></label></th>
<td>
<input type="text" name="Cat_meta[extra1]" id="Cat_meta[extra1]" size="25" style="width:60%;" value="<?php echo $cat_meta['extra1'] ? $cat_meta['extra1'] : ''; ?>"><br />
<span class="description"><?php _e('extra field'); ?></span>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="extra2"><?php _e('extra field'); ?></label></th>
<td>
<input type="text" name="Cat_meta[extra2]" id="Cat_meta[extra2]" size="25" style="width:60%;" value="<?php echo $cat_meta['extra2'] ? $cat_meta['extra2'] : ''; ?>"><br />
<span class="description"><?php _e('extra field'); ?></span>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="extra3"><?php _e('extra field'); ?></label></th>
<td>
<textarea name="Cat_meta[extra3]" id="Cat_meta[extra3]" style="width:60%;"><?php echo $cat_meta['extra3'] ? $cat_meta['extra3'] : ''; ?></textarea><br />
<span class="description"><?php _e('extra field'); ?></span>
</td>
</tr>
<?php
}
আপনি দেখতে পাচ্ছেন যে আমি 4 টি নতুন ক্ষেত্র যুক্ত করেছি এবং সেগুলি সমস্ত একটি অ্যারে ক্যাট_মেটা [কী] এ রয়েছে কারণ আমরা কেবলমাত্র প্রতিটি ক্ষেত্রের জন্য একটি সারির পরিবর্তে বিভাগের সমস্ত অতিরিক্ত ক্ষেত্রগুলি সংরক্ষণ করতে বিকল্প টেবিলে সারি তৈরি করি।
এর পরে আমাদের অতিরিক্ত ক্ষেত্রগুলি ডেটাবেজে সংরক্ষণ করতে হবে যখন কোনও ব্যবহারকারী একবার বিভাগ সম্পাদনা ফর্ম জমা দেয় এবং আমরা তা করি যে "এডিটেড_ক্যাটগরি" ব্যবহার করে একটি ফাংশন যা প্রতিটি জমা ক্ষেত্রের মধ্য দিয়ে চলবে এবং আপডেট_পশন ফাংশনটি ব্যবহার করে ডাটাবেসে সন্নিবেশ করিয়ে দেবে , এটার মত:
<?php
// save extra category extra fields hook
add_action ( 'edited_category', 'save_extra_category_fileds');
// save extra category extra fields callback function
function save_extra_category_fileds( $term_id ) {
if ( isset( $_POST['Cat_meta'] ) ) {
$t_id = $term_id;
$cat_meta = get_option( "category_$t_id");
$cat_keys = array_keys($_POST['Cat_meta']);
foreach ($cat_keys as $key){
if (isset($_POST['Cat_meta'][$key])){
$cat_meta[$key] = $_POST['Cat_meta'][$key];
}
}
//save the option array
update_option( "category_$t_id", $cat_meta );
}
}
উপরের কোড থেকে আপনি দেখতে পাচ্ছেন যে আমরা যে অতিরিক্ত অতিরিক্ত ক্ষেত্রগুলি যুক্ত করেছি সেগুলি সমস্তই 'বিভাগ_ID' নামে ডাটাবেসের বিকল্প টেবিলে সঞ্চিত রয়েছে, যেখানে আইডি আমরা সুনির্দিষ্ট সম্পাদিত নির্দিষ্ট বিভাগের আইডি এবং এর অর্থ আমরা এটিকে কল করতে পারি get_option ফাংশনটি সহজেই আমাদের প্লাগইনস বা থিম ফাইলগুলিতে ডেটা।
উদাহরণস্বরূপ বলুন আমার বিভাগের আইডি 25 এর পরে আমার কোডটি দেখতে পাবেন
<?php $cat_data = get_option('category_25'); ?>
আমি প্রথমদিকে যেমন বলেছি, প্রতিটি বিভাগের জন্য আমার আলাদা চিত্র প্রদর্শন করা দরকার, সুতরাং সেই ক্ষেত্রে আমি আমার থিমের বিভাগে এই কয়েকটি লাইন কোডটি যুক্ত করেছি। বিভাগের ঠিক পরে বিভাগের শিরোনাম প্রদর্শন করে যে কোডটি:
<?php
//first get the current category ID
$cat_id = get_query_var('cat');
//then i get the data from the database
$cat_data = get_option("category_$cat_id");
//and then i just display my category image if it exists
if (isset($cat_data['img'])){
echo '<div class="category_image"><img src="'.$cat_data['img'].'"></div>';
}
সুন্দর এবং সহজ এবং আমরা সব সম্পন্ন করেছি। ফলাফলটি এর সাথে দেখতে হবে: