Pregunta sobre GeneratePress de Wordpress:

Se debe agregar una presentación de diapositivas Metaslider al encabezado

Un usuario preguntó 👇

Saludos. Estoy chocando contra una pared con esto. Tengo un plugin de presentación de diapositivas, «Metaslider» instalado en mi tema hijo. La presentación de diapositivas tiene un acceso directo instalado, pero el desarrollador también proporciona código PHP si la presentación de diapositivas debe instalarse en otro lugar que no sea el editor de video:
<?php echo do_shortcode('[metaslider id="4170"]'); ?>

Quiero colocar este código dentro del div «marca del sitio», encima del título H3 «descripción del sitio». A continuación se muestra lo que tengo en el archivo functions.php del tema de mi hijo para el encabezado:

if ( ! function_exists( 'generate_header_items' ) ) :

function generate_header_items() 
{	
	// Site logo
	generate_construct_logo();
	
	// Site title and tagline
	generate_construct_site_title();
	
	// Header widget
	generate_construct_header_widget();
}
endif;
// generate_construct_logo function code
if ( ! function_exists( 'generate_construct_site_title' ) ) :
/**
 * Build the site title and tagline
 *
 * @since 1.3.28
 */
function generate_construct_site_title()
{
	$generate_settings = wp_parse_args( 
		get_option( 'generate_settings', array() ), 
		generate_get_defaults() 
	);
	
	// Get the title and tagline
	$title = get_bloginfo( 'title' );
	$tagline = get_bloginfo( 'description' );
	
	// If the disable title checkbox is checked, or the title field is empty, return true
	$disable_title = ( '1' == $generate_settings[ 'hide_title' ] || '' == $title ) ? true : false;
	
	// If the disable tagline checkbox is checked, or the tagline field is empty, return true
	$disable_tagline = ( '1' == $generate_settings[ 'hide_tagline' ] || '' == $tagline ) ? true : false;
	
	// Build our site title
	$site_title = apply_filters( 'generate_site_title_output', sprintf(
		'<%1$s class="main-title" itemprop="headline">
			<a href="%2$s" rel="home">
				%3$s
			</a>
		</%1$s>',
		( is_front_page() && is_home() ) ? 'h1' : 'p',
		esc_url( apply_filters( 'generate_site_title_href', home_url( '/' ) ) ),
		get_bloginfo( 'name' )
	));
	
	// Build our tagline
	$site_tagline = apply_filters( 'generate_site_description_output', sprintf(
		'<h3 class="site-description"><span>%1$s</span></h3>',
		html_entity_decode( get_bloginfo( 'description', 'display' ) )
	));
	
	// Site title and tagline
	if ( false == $disable_title || false == $disable_tagline ) {
		echo apply_filters( 'generate_site_branding_output', sprintf(
			'<div class="site-branding">
				%1$s
				%2$s
			</div>',
			( ! $disable_title ) ? $site_title : '',
			( ! $disable_tagline ) ? $site_tagline : ''
		) );
	}
}
endif;

¿Cuál es la mejor manera de agregar mi presentación de diapositivas?

(@leohsiang)

Hace 1 año, 9 meses

Hola,

¿Dónde le gustaría mostrar la diapositiva?

¿Entre el encabezado del sitio y la navegación principal?

Avísame 🙂

(@ Figura 2)

Hace 1 año, 9 meses

Gracias a Leo, la presentación de diapositivas debe estar dentro del div con la clase «marca del sitio», encima del título de descripción .3-H3, que también está dentro de la marca .site.

El div .site-branding se encuentra entre el logotipo y el widget de encabezado. He movido cosas y reconfigurado en mi tema infantil.

Es decir, en cuanto agregue el SEC necesario:

Autor del tema

(@ borde22)

Hace 1 año, 9 meses

Hola,

Prueba esta función:

add_filter( 'generate_site_description_output', function( $output ) {
    echo do_shortcode('[metaslider id="4170"]');
    echo $output;
} );

Avísame 🙂

(@ Figura 2)

Hace 1 año, 9 meses

Gracias Tom, no estoy seguro de dónde poner esto, pero esto es lo que hice:

`// Crea nuestro lema add_filter (‘gene_site_description_output’, function ($ output) {echo your_shortcode (‘[metaslider id=”4170″]’); echo $ salida; });

$ site_tagline = apply_filters (‘gene_site_description_output’, sprintf (‘

% 1 $ s

‘, html_entity_decode (get_bloginfo (‘ descripción ‘,’ pantalla ‘)))); ‘

Aquí está el resultado:

La presentación de diapositivas realmente aparece, pero él y el titular .3 sacaron una descripción H3 de la marca .site ahora vacía debajo de ambas características.

Autor del tema

(@ borde22)

Hace 1 año, 9 meses

Lo siento por eso. Intente agregar mi función usando uno de estos métodos: https://docs.generatepress.com/article/adding-php/

(@ Figura 2)

Hace 1 año, 9 meses

Gracias Tom, el código que ya estaba publicando está en el archivo functions.php de mi tema hijo. ¿Debería agregarlo como un plugin a este código?

(@ Figura 2)

Hace 1 año, 9 meses

Aquí está el archivo de funciones del tema de mi hijo si desea verlo: https://www.markhannondesign.com/clientJobs/functions.zip

Autor del tema

(@ borde22)

Hace 1 año, 9 meses

Hola,

Todo el archivo functions.php debería verse así:

<?php
add_filter( 'generate_site_description_output', function( $output ) {
    echo do_shortcode('[metaslider id="4170"]');
    echo $output;
} );

Avísame 🙂

(@ Figura 2)

Hace 1 año, 9 meses

Gracias Tom. Se ve diferente, pero la presentación de diapositivas H3 y la descripción del sitio aún no están incrustadas en el div .s-branding.

Archivo de funciones actualizado: https://www.markhannondesign.com/clientJobs/functions_v2.zip

Autor del tema

(@ borde22)

Hace 1 año, 9 meses

Hmm, ¿puedes probar esto en su lugar?:

add_filter( 'generate_site_description_output', function( $output ) {
    ob_start();
    echo do_shortcode('[metaslider id="4170"]');
    echo $output;
	
    return ob_get_clean();
} );

(@ Figura 2)

Hace 1 año, 9 meses

Eso hizo el truco de Tom. Gracias.

Autor del tema

(@ borde22)

Hace 1 año, 9 meses

De nada 🙂

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.