আমার একটি আকর্ষণীয় সমস্যা রয়েছে যা আমি আশা করি যে কেউ দ্রুত উত্তর দিতে পারে।
আমি আমার নিজস্ব মেটাবক্স তৈরি করেছি যা "আমার মেটাবক্স কোড" এর উপর ভিত্তি করে (নীচের তালিকা) আমার তৈরি "ইভেন্ট_ টাইপস" শ্রেণিবদ্ধের মধ্যে আমার সমস্ত শর্তের ড্রপডাউন তালিকাটি সঠিকভাবে প্রদর্শন করছে।
যেখানে আমি কোনও ইস্যুতে চলেছি সেখানে যখন ড্রপডাউন থেকে আলাদা পদ নির্বাচন করা হয় এবং পোস্টটি আপডেট করা হয় তখন কোনও পোস্টের সাথে সম্পর্কিত শব্দটি সংরক্ষণ / আপডেট করতে সক্ষম হয়।
বিভিন্ন কোড বিটের সাহায্যে চারপাশে ঝাঁকুনির পরে আমি বুঝতে পেরেছিলাম যে অ্যারে এরিয়ায় অনেকগুলি পদ_আইডি নম্বর (কমা দ্বারা পৃথক করা) লিখে আমি ফলাফলগুলি পাচ্ছি looking
উদাহরণস্বরূপ যদি পোস্টটি সংরক্ষণ করার সময় কোনও ফাংশন এই কোডটি কল করে
wp_set_post_terms( $post_id, array(5,7), 'event_types', FALSE);
তারপরে আমার পোস্ট আপডেট হবে এবং এর সাথে টার্ম_আইডি 5 এবং 7 যুক্ত করবে যা আপনি দেখতে পাচ্ছেন আমি অ্যারে পার করছি। সমস্যাটি হ'ল এটি আমার ফাংশন.এফপি ফাইলটিতে কঠোরভাবে কোডড এবং কোনও ব্যবহারকারী নির্বাচিত ড্রপডাউন মানের উপর ভিত্তি করে নয় (দ্রষ্টব্য: আমি আসলে কেবল একটি আইডি পাস করার চেষ্টা করছি তবে নীচে বর্ণিত হিসাবে টেস্টিংয়ের জন্য দুটি করেছি)।
আমি এটিও নির্ধারণ করতে সক্ষম হয়েছি যে আমি যদি আমার মেটাবক্স ফাইলে নিম্নলিখিত কোডটি যুক্ত করি তবে আমি নির্ধারিত টার্ম আইডিগুলির একটি তালিকা প্রতিধ্বনি করতে সক্ষম হয়েছি তবে শেষ আইটেমটিতে একটি কমা রয়েছে।
<?php $event_types = wp_get_object_terms($post->ID, 'event_types');
foreach ($event_types as $event_type) { echo $event_type->term_id . ','; } ?>
সুতরাং ... মনে হচ্ছে আমার সমস্যার 85% সমাধান হয়েছে। আমার বাকী 15% সমস্যা নীচে রয়েছে:
আমার ফাংশন.এফপিপি ফাইল কোডে (নীচে তালিকাভুক্ত) আমাকে কী যুক্ত করতে হবে যাতে আমি যখন আমার ট্যাক্সনমি ড্রপডাউন তালিকা থেকে নির্বাচিত নতুন ভ্যালু অ্যারেতে প্রবেশ করি / আপডেট করি?
যদিও এই উদাহরণে আমি নিশ্চিত করতে চাইছি যে কেবলমাত্র একটি একক শ্রেণিবদ্ধ একটি পোস্টের সাথে যুক্ত হতে পারে, এমন অন্যান্য পরিস্থিতি রয়েছে যেখানে আমি একটি চেকবক্স তালিকা তৈরি করতে চাই যেখানে আমাকে অ্যারেতে একাধিক মান পাস করতে হবে। এর মতো, আমার কী পরিবর্তন করতে হবে যাতে টার্ম আইডিগুলির একটি কমা দ্বারা পৃথক করা তালিকা অ্যারেতে চলে যায়? যদি আপনার উত্তরটিতে আমি উল্লিখিত উদাহরণ কোডের কিছু বা কিছু অংশ ব্যবহার করা জড়িত যেখানে আমি আইডিগুলি প্রতিধ্বনিত করি তবে আমি কীভাবে শেষ আইডিটি নিশ্চিত করব যে প্রিন্ট করা আছে তার শেষে কমা নেই? (এটি করার কোনও আলাদা / আরও ভাল উপায় আছে? আমি ইঙ্গিতগুলি দেখেছি যা ফিল্টার যুক্ত করার সাথে সম্পর্কিত হতে পারে তবে কীভাবে এটি করা হয়েছে তা সম্পর্কে আমি নিশ্চিত নই ...)
আপনাকে আগাম অনেক ধন্যবাদ - নীচে আমি বর্তমানে প্রতিটি ফাইলে যে কোডটি ব্যবহার করছি তা নীচে।
আমার ফাংশনগুলিতে কোড। পিএইচপি ফাইল
function save_event_taxonomy_terms($meta, $post_id) {
$event_types = wp_get_object_terms($post->ID, 'event_types');
wp_set_post_terms( $post_id, array($names), 'event_types', FALSE);
}
আমার মেটাবক্স কোড
<select name='post_event_types' id='post_event-types'>
// DISPLAY TERMS AS DROP DOWN OPTIONS
<?php
$names = wp_get_object_terms($post->ID, 'event_types');
$event_types = get_terms('event_types', 'hide_empty=0');
?>
<option class='event_type-option' value='' <?php if (!count($names)) echo "selected";?>>Not Assigned</option>
<?php foreach ($event_types as $event_type) {
if (!is_wp_error($names) && !empty($names) && !strcmp($event_type->slug, $names[0]->slug))
echo "<option class='event_type-option' value='" . $event_type->slug . "' selected>" . $event_type->name . "</option>\n";
else
echo "<option class='event_type-option' value='" . $event_type->slug . "'>" . $event_type->name . "</option>\n";
}
?>
</select>