是否在添加/编辑类别时删除“父”选择?

时间:2012-07-17 作者:Roc

我一直在试图找到一种方法来隐藏/停用Posts->Categories屏幕上的父下拉菜单
http://example.com/wp-admin/edit-tags.php?taxonomy=category

我可以通过此函数在此处隐藏“Slug”选项:

// Admin - Global Terms Enabled
function disable_global_terms($enablefalse) {
   return 1;
}
add_filter( \'global_terms_enabled\', \'disable_global_terms\' );
是否有一种方法可以在不从主WP文件中删除代码的情况下对父下拉菜单执行相同的操作,以便每次更新时都必须执行此操作?

1 个回复
SO网友:brasofilo

如果要从中删除代码main WordPress files, 这意味着您知道如何处理大量PHP文件,所以现在是学习如何操作的时候了without touching core files.

问题中的钩子旁注:
过滤器global_terms_enabled 仅适用于多站点(/wp-includes/functions.php, 第3006行)

在许多情况下,没有钩子来修改管理接口,因此需要使用CSS或jQuery进行修改
下面的解决方案显示了如何在特定屏幕中打印脚本(edit-tags.php) 的admin_head-SCREEN-ID.php. 在这里,可以进行许多检查,在本例中是URL参数。

add_action( \'admin_head-edit-tags.php\', \'wpse_58799_remove_parent_category\' );

function wpse_58799_remove_parent_category()
{
    // don\'t run in the Tags screen
    if ( \'category\' != $_GET[\'taxonomy\'] )
        return;
    
    // Screenshot_1 = New Category
    // http://example.com/wp-admin/edit-tags.php?taxonomy=category
    $parent = \'parent()\';
    
    // Screenshot_2 = Edit Category
    // http://example.com/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=17&post_type=post
    if ( isset( $_GET[\'action\'] ) )
        $parent = \'parent().parent()\';
        
    ?>
        <script type="text/javascript">
            jQuery(document).ready(function($)
            {     
                $(\'label[for=parent]\').<?php echo $parent; ?>.remove();       
            });
        </script>
    <?php
}
屏幕截图1Screenshot_1

屏幕截图2enter image description here

结束