สวัสดี ฉันได้ดาวน์โหลดปลั๊กอิน "Simple Staff List" แล้ว และปลั๊กอินก็ทำสิ่งที่ฉันต้องการ แต่ฉันไม่ต้องการให้บรรณาธิการสร้างหมวดหมู่ย่อย ฉันจะลบ/ซ่อนกล่องเลือก "พาเรนต์" บนแบบฟอร์มได้อย่างไร
WordPress: ลบเมนูแบบเลื่อนลงของพาเรนต์ออกจากแบบฟอร์มหมวดหมู่
คำตอบ (6)
เพิ่มโค้ดด้านล่างในไฟล์ function.php
ของธีมปัจจุบันของคุณ
add_action( 'admin_head-edit-tags.php', 'wpse_58799_remove_parent_category' );
function wpse_58799_remove_parent_category()
{
if ( 'category' != $_GET['taxonomy'] )
return;
$parent = 'parent()';
if ( isset( $_GET['action'] ) )
$parent = 'parent().parent()';
?>
<script type="text/javascript">
jQuery(document).ready(function($)
{
$('label[for=parent]').<?php echo $parent; ?>.remove();
});
</script>
<?php
}
คุณสามารถใช้ตั้งค่าตัวเลือกเหล่านี้ใน register_taxonomy()
func
'hierarchical' => false,
'parent_item' => null,
'parent_item_colon' => null,
นี่จะเป็นการลบฟิลด์พาเรนต์
'hierarchical' => false
แปลงกล่องหมวดหมู่ให้เป็นกล่องแท็ก (และแท็กปกติแล้วจะไม่มีแท็กพาเรนต์) แต่ 'parent_item' => null, 'parent_item_colon' => null,
อยู่ในอาร์เรย์ labels
และไม่สามารถอยู่ในอาร์เรย์เดียวกันกับพารามิเตอร์ hierarchical
ได้
- person certainlyakey; 21.01.2018
การดำเนินการนี้จะลบเมนูแบบเลื่อนลงหลักออกจากทั้งอนุกรมวิธานและหน้าจอการโพสต์ใหม่/แก้ไข
<?php
function remove_tax_parent_dropdown() {
$screen = get_current_screen();
if ( 'category' == $screen->taxonomy ) {
if ( 'edit-tags' == $screen->base ) {
$parent = "$('label[for=parent]').parent()";
} elseif ( 'term' == $screen->base ) {
$parent = "$('label[for=parent]').parent().parent()";
}
} elseif ( 'post' == $screen->post_type ) {
$parent = "$('#newcategory_parent')";
} else {
return;
}
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
<?php echo $parent; ?>.remove();
});
</script>
<?php
}
add_action( 'admin_head-edit-tags.php', 'remove_tax_parent_dropdown' );
add_action( 'admin_head-term.php', 'remove_tax_parent_dropdown' );
add_action( 'admin_head-post.php', 'remove_tax_parent_dropdown' );
add_action( 'admin_head-post-new.php', 'remove_tax_parent_dropdown' );
หากคุณต้องการปิดการใช้งาน "ลำดับชั้น" จากอนุกรมวิธานหมวดหมู่ ให้เพิ่มรหัสนี้ใน function.php
ของคุณ
add_action('init', function(){
global $wp_taxonomies;
$wp_taxonomies['category']->hierarchical = false;
});
เพิ่มโค้ดด้านล่างในไฟล์ function.php ของธีมปัจจุบันของคุณ
function custom_taxonomy() {
$labels = array(
'name' => _x( 'Brands', 'Taxonomy General Name', 'text_domain' ),
'singular_name' => _x( 'Brand', 'Taxonomy Singular Name', 'text_domain' ),
'menu_name' => __( 'Taxonomy', 'text_domain' ),
'all_items' => __( 'All Items', 'text_domain' ),
'parent_item' => __( 'Parent Item', 'text_domain' ),
'parent_item_colon' => __( 'Parent Item:', 'text_domain' ),
'new_item_name' => __( 'New Item Name', 'text_domain' ),
'add_new_item' => __( 'Add New Item', 'text_domain' ),
'edit_item' => __( 'Edit Item', 'text_domain' ),
'update_item' => __( 'Update Item', 'text_domain' ),
'view_item' => __( 'View Item', 'text_domain' ),
'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
'add_or_remove_items' => __( 'Add or remove items', 'text_domain' ),
'choose_from_most_used' => __( 'Choose from the most used', 'text_domain' ),
'popular_items' => __( 'Popular Items', 'text_domain' ),
'search_items' => __( 'Search Items', 'text_domain' ),
'not_found' => __( 'Not Found', 'text_domain' ),
'no_terms' => __( 'No items', 'text_domain' ),
'items_list' => __( 'Items list', 'text_domain' ),
'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => true,
'parent_item' => null,
'parent_item_colon' => null,
);
register_taxonomy( 'brands', array( 'product' ), $args );
}
add_action( 'init', 'custom_taxonomy', 0 );
ข้อมูลอ้างอิง: https://codex.wordpress.org/Function_Reference/register_taxonomy
สิ่งนี้จะใช้ได้กับ WordPress 5.4.2 สำหรับฉันโซลูชันอื่น ๆ ทั้งหมดจะแสดงฟิลด์ตราบใดที่ jQuery ลบออก วิธีแก้ปัญหาที่รวดเร็วและสกปรกของฉันซ่อนผ่าน CSS และลบออกด้วย jQuery น่าเสียดายที่การซ่อน (ไม่ลบ) เท่านั้นดูเหมือนว่าจะใช้ได้กับ Gutenberg Editor บางทีคนอื่นอาจมีวิธีแก้ปัญหาอื่น
function remove_tax_parent_dropdown() {
$screen = get_current_screen();
if ( 'category' == $screen->taxonomy ) {
if ( 'edit-tags' == $screen->base ) {
$parent = "$('label[for=parent]').parent().remove(); ";
$css = ".term-parent-wrap{display:none;}";
} elseif ( 'term' == $screen->base ) {
$parent = "$('label[for=parent]').parent().parent().remove(); ";
$css = ".term-parent-wrap{display:none;}";
}
} elseif ( 'post' == $screen->post_type ) {
$parent = "$('#newcategory_parent').remove();";
$css = "div.components-base-control:nth-child(3){display:none;}";
} else {
return;
}
if(!empty($css)) {
echo '<style type="text/css">';
echo $css;
echo '</style>';
}
if(!empty($parent)) {
echo '<script type="text/javascript">';
echo 'jQuery(document).ready(function($) {';
echo $parent;
echo '});';
echo '</script>';
}
}
add_action( 'admin_head-edit-tags.php', 'remove_tax_parent_dropdown' );
add_action( 'admin_head-term.php', 'remove_tax_parent_dropdown' );
add_action( 'admin_head-post.php', 'remove_tax_parent_dropdown' );
add_action( 'admin_head-post-new.php', 'remove_tax_parent_dropdown' );
อ้อ ยังไงก็ตาม - อย่าใช้รหัสต่อไปนี้เพราะคุณประสบปัญหาที่ไม่ดี เมื่อคุณบันทึกโพสต์โดยไม่เปลี่ยนหมวดหมู่ หมวดหมู่ทั้งหมดของโพสต์นี้จะถูกลบ และรหัสหมวดหมู่จะถูกสร้างขึ้นเป็นหมวดหมู่ใหม่และเพิ่มลงในโพสต์ของคุณ
global $wp_taxonomies;
$wp_taxonomies['category']->hierarchical = false;