WordPress:删除"家长"从类别表格下拉列表

时间:2014-07-12 07:57:54

标签: wordpress categories

您好我已经下载了一个插件" Simple Staff List"它完成了我的需要,但我不想让编辑创建一个子类别。如何删除/隐藏" Parent"表单上的选择框?parent selectobox on form

6 个答案:

答案 0 :(得分:2)

在当前主题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
}

答案 1 :(得分:1)

这将从分类法中删除父下拉列表,并发布新/编辑屏幕。

<?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' ); 

答案 2 :(得分:0)

您可以使用设置这些选项 register_taxonomy() func

'hierarchical' => false,
'parent_item'  => null,
'parent_item_colon' => null,

这将删除父字段。

答案 3 :(得分:0)

如果要从类别分类中禁用“层次结构”本身,请将此代码添加到function.php中。

add_action('init', function(){
    global $wp_taxonomies;
    $wp_taxonomies['category']->hierarchical = false;
});

答案 4 :(得分:0)

在您当前的主题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 );

enter image description here

参考:https://codex.wordpress.org/Function_Reference/register_taxonomy

答案 5 :(得分:0)

这将适用于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' ); 

顺便说一句-请勿使用以下代码,因为您会遇到严重问题。当您保存帖子而不更改类别时,该帖子的所有类别将被删除,类别ID将被创建为新类别并添加到您的帖子中。

global $wp_taxonomies;
$wp_taxonomies['category']->hierarchical = false;