Eliminar la selección "principal" al agregar / editar categorías?

2

He estado tratando de encontrar una forma de ocultar / desactivar el menú desplegable de Padres en las Publicaciones - > Pantalla de categorías.
http://example.com/wp-admin/edit-tags.php?taxonomy=category

Pude ocultar la opción "Slug" a través de esta función aquí:

// Admin - Global Terms Enabled
function disable_global_terms($enablefalse) {
   return 1;
}
add_filter( 'global_terms_enabled', 'disable_global_terms' );

¿Hay alguna forma en que pueda hacer lo mismo para el menú desplegable para padres sin eliminar ese código de los archivos principales de WP, por lo que tendría que hacerlo cada vez que haga una actualización?

    
pregunta Roc 17.07.2012 - 21:21

1 respuesta

7

Si está eliminando el código de los archivos principales de WordPress , esto significa que sabe cómo manejar un montón de archivos PHP, por lo que ahora es el momento de aprender cómo hacer las cosas sin tocando los archivos principales .

Nota al anzuelo presentada en la pregunta:
el filtro global_terms_enabled solo funciona para Multisite ( /wp-includes/functions.php , línea 3006) .

En muchos casos, no hay enlaces para modificar la interfaz administrativa, por lo que la modificación debe realizarse con CSS o jQuery.
La solución a continuación muestra cómo imprimir scripts en una pantalla específica ( edit-tags.php ) del admin_head-SCREEN-ID.php . Allí, se pueden hacer muchas comprobaciones, en este caso los parámetros de 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
}

Captura de pantalla_1

Capturadepantalla_2

    
respondido por el brasofilo 31.07.2012 - 11:28

Lea otras preguntas en las etiquetas