Skip Navigation

[Résolu] Necesito poner un shortcode dentro de otro

This support ticket is created Il y a 7 années. There's a good chance that you are reading advice that it now obsolete.

This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.

Aucun de nos assistants n'est disponible aujourd'hui sur le forum Jeu d'outils. Veuillez créer un ticket, et nous nous le traiterons dès notre prochaine connexion. Merci de votre compréhension.

Sun Mon Tue Wed Thu Fri Sat
- 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 -
- 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 -

Supporter timezone: Europe/London (GMT+01:00)

Marqué : 

Ce sujet contient 4 réponses, a 2 voix.

Dernière mise à jour par Rafael Corts Il y a 7 années.

Assisté par: Nigel.

Auteur
Publications
#563646

Hola he creado este código:

[wpv-view name="productes-de-cada-vendor" wpvwcpvproductvendors="[wpv-view name="slug-centre"]"]</div>

Lo he creado en una página para poder filtrar una "View" con un filtro de shortcode

 wpvwcpvproductvendors="[wpv-view name="slug-centre"]

El problema creo que es que no no funciona un shortcode dentro de otro shortcode, ¿como podria hacer para que me funcionara?
Si lo pongo por separado esta View lo hace correcto

<div class="rc_products">[wpv-view name="slug-centre"]</div>

pero cuando lo pongo dentro de del otro codigo no me funciona.
¿Como lo podría hacer?
Saludos.
Rafa corts

#564126

Nigel
Supporter

Les langues: Anglais (English ) Espagnol (Español )

Fuseau horaire: Europe/London (GMT+01:00)

Hola Rafa

El problema es que la salida de un View no es 'limpio', contiene un div contenedor, p.j.

Tienes que añadir algún código a functions.php a limpiar el View, así:

/**
 * Naked Views output with no wrapper divs
 */
add_filter( 'wpv_filter_wpv_view_shortcode_output', 'prefix_naked_view_output', 5, 2 );
function prefix_naked_view_output( $out, $view_id ) {
 
    if ( 99 = $view_id ) { // Editar el ID como sea necesario
        $start = strpos( $out, '<!-- wpv-loop-start -->' );
        if  (   $start !== false
                && 
                strrpos( $out, '<!-- wpv-loop-end -->', $start ) !== false ) {
 
            $start = $start + strlen( '<!-- wpv-loop-start -->' );
            $out = substr( $out , $start );
            $end = strrpos( $out, '<!-- wpv-loop-end -->' );
            $out = substr( $out, 0, $end );
        }
    }
 
    return $out;
}

Así con una salida limpia se puede usar el View como entrada para otros usos.

#564829

Hola Nigel, entiendo que esta funcction es para limpiar el div contenedor, he pegado esta functions en la pagina de functions.php y cuando lo salvo las paginas se quedan en blanco. no se si debo indicar que view o shortcode ?
Saludos.
Rafa corts

#565010

Nigel
Supporter

Les langues: Anglais (English ) Espagnol (Español )

Fuseau horaire: Europe/London (GMT+01:00)

Hola Rafa

Tienes que editar linea 7 para el ID del View (99 en este ejemplo), y veo un error tipográfico.

Debe ser:

if ( 99 == $view_id ) { // Editar el ID como sea necesario
#565066

Todo perfecto!!
Mil Gracias.
Rafa Corts

Ce ticket est maintenant fermé. Si vous êtes un client de Toolset et que vous avez besoin d'aide, veuillez ouvrir un nouveau ticket d'assistance