ฉันมีปัญหาเล็กน้อยเกี่ยวกับเงื่อนไขการแทรก นี่คือสถานการณ์ของฉัน: ฉันมี taxonomy ที่เรียกว่า veda_release_type:
//Release Type and Region
$labels = array(
'name'=> _x('Release Types/Regions', 'taxonomy general name' ),
'singular_name' => _x('Release Type/Region', 'taxonomy singular name'),
'search_items' => __('Search Release Types/Regions'),
'popular_items' => __('Popular Release Types/Regions'),
'all_items' => __('All Release Types/Regions'),
'edit_item' => __('Edit Release Type/Regions'),
'edit_item' => __('Edit Release Type/Region'),
'update_item' => __('Update Release Type/Region'),
'add_new_item' => __('Add New Release Type/Region'),
'new_item_name' => __('New Release Type/Region Name'),
'separate_items_with_commas' => __('Seperate Release Types/Regions with Commas'),
'add_or_remove_items' => __('Add or Remove Release Types/Regions'),
'choose_from_most_used' => __('Choose from Most Used Release Types/Regions')
);
$args = array(
'hierarchical' =>true,
'labels' => $labels,
'query_var' => true,
'rewrite' => array('slug' =>'release_type')
);
register_taxonomy('veda_release_type', 'veda_release',$args);
เห็นได้ชัดว่ามันเป็นลำดับชั้น ระดับสูงสุดประกอบด้วยประเภทการเปิดใช้งานเช่น DVD, Blu-ray ระดับใต้นั้นคือภูมิภาคเช่น ภาค 1 ภาค 2 ฯลฯ ลำดับชั้นที่ฉันต้องการคือ: DVD - ภูมิภาค 0 - ภูมิภาค 1 - ภูมิภาค 2 - ภูมิภาค 3 - ภูมิภาค 4 - ภูมิภาค 5 - ภูมิภาค 6 Blu-Ray - - ภูมิภาค A - ภูมิภาค B - ภูมิภาค C
ฉันสร้างฟังก์ชั่นที่ชื่อว่า insert_term ในชั้นเรียนของฉันเพื่อตรวจสอบว่ามีคำใดคำหนึ่งอยู่แล้วใส่มันถ้ามันไม่:
public function insert_term ($term, $taxonomy, $args = array()) {
if (isset($args['parent'])) {
$parent = $args['parent'];
} else {
$parent = 0;
}
$result = term_exists($term, $taxonomy, $parent);
if ($result == false || $result == 0) {
return wp_insert_term($term, $taxonomy, $args);
} else {
return (array) $result;
}
}
จากนั้นฉันก็เรียกฟังก์ชั่นดังกล่าวเพื่อแทรกคำศัพท์:
$dvd = $this->insert_term('DVD','veda_release_type');
$this->insert_term('Region 0','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 1','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 2','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 3','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 4','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 5','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 6','veda_release_type',array('parent'=>$dvd['term_id']));
$bd = $this->insert_term('Blu-Ray', 'veda_release_type');
$this->insert_term('Region A','veda_release_type',array('parent'=>$bd['term_id']));
$this->insert_term('Region B','veda_release_type',array('parent'=>$bd['term_id']));
$this->insert_term('Region C','veda_release_type',array('parent'=>$bd['term_id']));
ปัญหาที่ฉันมีอยู่คือแม้ว่าคำต่างๆจะถูกป้อนลงในฐานข้อมูล แต่ก็ไม่ปรากฏในหน้าอนุกรมวิธาน อย่างน้อยที่สุดคำศัพท์ระดับสูงสุดจะปรากฏขึ้น ฉันต้องลองสิ่งต่าง ๆ จนกว่ามันจะบังคับให้ WordPress จำคำศัพท์ย่อยได้ มีใครพบปัญหานี้หรือแนะนำวิธีที่ดีกว่า
แก้ไข: พบสิ่งอื่น: ฉันพยายามลบคำศัพท์ออกจากฐานข้อมูลจากนั้นปิดใช้งานและเปิดใช้งานปลั๊กอินที่ประกาศเงื่อนไขอีกครั้ง คำหลักสองคำปรากฏขึ้นในหน้าเงื่อนไข แต่คำศัพท์ย่อยไม่ได้ คำศัพท์ย่อยจะแสดงในเมนูแบบเลื่อนลง "ผู้ปกครอง" ซึ่งคุณต้องการสร้างคำใหม่ เมื่อฉันเพิ่มคำที่ผู้ปกครองเป็นหนึ่งในเงื่อนไขย่อยและรีเฟรชหน้าจากนั้นข้อกำหนดย่อยจะปรากฏขึ้น