it-swarm-es.com

¿Cómo agregar logotipo personalizado a temas enteros

Me gustaría agregar un logotipo personalizado a todo el panel de mi red de blogs. Revisé una receta en la revista smashing y obtuve este código:

//hook the administrative header output
add_action('admin_head', 'my_custom_logo');

function my_custom_logo() {
    echo '
      <style type="text/css">
      #header-logo { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.gif) !important; }
      </style>
    ';
 }

¿Dónde lo agrego? Creo que debería agregarlo en functions.php. Pero si es así, debería agregar el código a cada tema en mis redes de redes múltiples.

¿Alguien tiene idea de agregarlo a toda la red? También debería poder configurar solo para un submarino en particular y no para toda la red si cambio de opinión en el futuro :)

¡Gracias!

1
user391

Si desea que este logotipo se muestre en sus sitios de red, independientemente del tema, le aconsejo que cree un nuevo PHP archivo dentro de wp-content/mu-plugins (cree el directorio si no existe) y suelte ese código dentro del nuevo archivo. Puede nombrar su archivo como desee, por ejemplo my-network-tweaks.php. Ese archivo se cargará automáticamente como un complemento en todos los sitios.

Y si desea anular esta imagen para un sitio en particular, puede hacer que esa función sea conectable. Me gusta esto:

<?php
//hook the administrative header output
add_action('admin_head', 'my_custom_logo');

// if override function exists load it up instead
if(function_exists('override_my_custom_logo')) {

    function my_custom_logo() {
        override_my_custom_logo();
    }

// fallback to original function
} else {

    function my_custom_logo() {
        echo '
        <style type="text/css">
            #header-logo { background-image: url('/path/to/images/custom-logo.gif) !important; }
        </style>
        ';
    }

}
?>

Tenga en cuenta que he cambiado la ruta de la imagen porque queremos que apunte a un solo archivo para toda la red. Usar get_bloginfo('template_directory') causaría que cargue la imagen desde el directorio del tema.

Si desea anular la imagen de un solo sitio, solo use el código de Tom J Nowell para cambiar el nombre de la función a override_my_custom_logo

3
iv.draganov

Colóquelo en functions.php y agregue un archivo custom-logo.gif (32x32 píxeles) en una subcarpeta de imágenes de su tema.

//hook the administrative header output
add_action('admin_head', 'my_custom_logo');

function my_custom_logo() {
    echo '
<style type="text/css">
#header-logo { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.gif) !important; }
</style>
';
}
1
Tom J Nowell

Puede revisar el complemento CMS de etiqueta blanca para automatizar esto por usted.

1
Eric