¿Cómo anular una llamada de función en functions.php?

2

En functions.php de un tema hace una llamada a show_admin_bar(false) que oculta la barra de administración en el front end:

if (!is_admin())
{
    wp_deregister_style( 'bp-admin-bar' );
    if ( function_exists( 'show_admin_bar' ) )
    {
        show_admin_bar( false );
        remove_action( 'bp_init', 'bp_core_load_buddybar_css' );
    }
}

Quiero hacer que la barra de administración aparezca en el extremo delantero de los usuarios admin . Para hacer esto, agregué el siguiente código a un complemento:

add_action('plugins_loaded', 'show_admin_bar_to_admins', 100);
function show_admin_bar_to_admins()
{
    if (current_user_can('manage_options')) {
        show_admin_bar(true);
    }
}

Pero esta llamada no hizo una diferencia. Pongo 100 como el valor de prioridad para hacer que esta función se llame más tarde que la llamada dentro de functions.php . Pero no hizo una diferencia.

¿Hay una manera de hacer que una llamada a función dentro de un complemento se ejecute más tarde que la llamada dentro de functions.php .

    
pregunta Mert Nuhoglu 01.02.2013 - 17:12

2 respuestas

6

Primero que nada: este tema es tan incorrecto. Uno no debe simplemente rellenar las llamadas sencillas en los archivos functions.php. Esos deben estar envueltos y enganchar. Mejor para after_setup_theme() . Podrías probar el mismo gancho.

    
respondido por el kaiser 01.02.2013 - 17:14
0

Creo que la mejor manera de mostrar u ocultar la barra de administración es enganchando en el filtro show_admin_bar , y especificando las condiciones que necesitas en la función de filtro:

add_filter('show_admin_bar', 'ad_show_admin_bar');

function ad_show_admin_bar($show) {
    // show front-end admin bar for admins only
    if(current_user_can('manage_options')) {
        return true;
    } else {
        return false;
    }
}

Esto también se encargará de agregar los scripts y estilos necesarios para la barra de administración.

    
respondido por el Ahmad M 02.02.2013 - 11:00

Lea otras preguntas en las etiquetas