Habilité custom-logo
y lo imprimí con <?php the_custom_logo(); ?>
en el encabezado. ¿Hay alguna posibilidad de simplemente agregar algunas clases más a esta imagen directamente? Por defecto, solo viene con custom-logo
.
Habilité custom-logo
y lo imprimí con <?php the_custom_logo(); ?>
en el encabezado. ¿Hay alguna posibilidad de simplemente agregar algunas clases más a esta imagen directamente? Por defecto, solo viene con custom-logo
.
WordPress proporciona un gancho de filtro para personalizar la personalización del logotipo. El gancho get_custom_logo
es el filtro. Para cambiar la clase de logotipo, este código puede ayudarte.
add_filter( 'get_custom_logo', 'change_logo_class' );
function change_logo_class( $html ) {
$html = str_replace( 'custom-logo', 'your-custom-class', $html );
$html = str_replace( 'custom-logo-link', 'your-custom-class', $html );
return $html;
}
Referencia: Cómo cambiar el logotipo personalizado de WordPress y la clase de enlace del logotipo
Aquí hay una sugerencia sobre cómo podríamos intentar agregar clases a través del filtro wp_get_attachment_image_attributes
(no probado):
add_filter( 'wp_get_attachment_image_attributes', function( $attr )
{
if( isset( $attr['class'] ) && 'custom-logo' === $attr['class'] )
$attr['class'] = 'custom-logo foo-bar foo bar';
return $attr;
} );
donde ajustas las clases a tus necesidades.
Como te encontraste, the_custom_logo
confía en get_custom_logo
, que a su vez llama wp_get_attachment_image
para agregar la clase custom-logo
. La última función tiene un filtro, wp_get_attachment_image_attributes
que puede usar para manipular los atributos de la imagen.
Entonces, lo que podrías hacer es crear un filtro que compruebe si la clase custom-logo
está allí y, si es así, agrega más clases.
Creo que encontré una respuesta. Pero realmente me pregunto si esta es la manera correcta? Se siente un poco sucio de alguna manera: simplemente copié las partes relacionadas con el logotipo de wp-includes / general-template.php en las funciones.php de mi tema y cambié el nombre de las funciones con algunas clases personalizadas agregadas:
function FOOBAR_get_custom_logo( $blog_id = 0 ) {
$html = '';
if ( is_multisite() && (int) $blog_id !== get_current_blog_id() ) {
switch_to_blog( $blog_id );
}
$custom_logo_id = get_theme_mod( 'custom_logo' );
if ( $custom_logo_id ) {
$html = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home" itemprop="url">%2$s</a>',
esc_url( home_url( '/' ) ),
wp_get_attachment_image( $custom_logo_id, 'full', false, array(
'class' => 'custom-logo FOO-BAR FOO BAR', // added classes here
'itemprop' => 'logo',
) )
);
}
elseif ( is_customize_preview() ) {
$html = sprintf( '<a href="%1$s" class="custom-logo-link" style="display:none;"><img class="custom-logo"/></a>',
esc_url( home_url( '/' ) )
);
}
if ( is_multisite() && ms_is_switched() ) {
restore_current_blog();
}
return apply_filters( 'FOOBAR_get_custom_logo', $html );
}
function FOOBAR_the_custom_logo( $blog_id = 0 ) {
echo FOOBAR_get_custom_logo( $blog_id );
}
Lea otras preguntas en las etiquetas theme-development themes css add-theme-support logo