¿Cómo verificar si existe un shortcode?

15 mar 2012, 19:04:05
Vistas: 22.6K
Votos: 6

Estoy usando la función do_shortcode para agregar shortcodes en mi plantilla. Pero me gustaría verificar si ese shortcode existe antes de mostrarlos.

Me refiero a algo como esto:

If (shortcode_gallery_exists) {
  echo do_shortcode('[gallery]');
}

¿Alguien puede ayudarme? Gracias

0
Todas las respuestas a la pregunta 7
0

#23572 introdujo shortcode_exists() en la versión 3.6.

19 jul 2013 22:44:42
1

Creo que podrías usar el siguiente código para hacer esto:

$content = get_the_content();
//escribe el inicio del shortcode
$shortcode = '[gallery';

$check = strpos($content,$shortcode);
if($check=== false) {
  //Código a ejecutar si no está el shortcode
} else {
  //Código a ejecutar si el shortcode está presente
}

(Advertencia: no probado)

15 mar 2012 19:26:08
Comentarios

Esto funciona, sin el "[" en el nombre del shortcode.

herrfischer herrfischer
18 ene 2023 12:18:43
1

Encontré esto en línea en algún lugar y lo usé una o dos veces

//primero verificamos si hay shortcode en el contenido
$tempContent = get_the_content();
$tempCheck = '[gallery';

$tempVerify = strpos($tempContent,$tempCheck);
if($tempVerify === false) {
  //Shortcode no encontrado, no hacer nada ¿tú decides?
} else {
    echo do_shortcode('[gallery]');
}

.

(sé que a [gallery le falta el ].. déjalo así)

Esto debería usarse dentro del loop ..
Espero que esto ayude, Sagive

15 mar 2012 19:26:27
Comentarios

OMG @Ryan me ganó.. :) publicamos con unos segundos de diferencia, supongo que no vi su respuesta :) disculpas Ryan - llegaste primero..

Sagive Sagive
15 mar 2012 19:27:30
1

Puedes crear tu propia función,

// verifica si el post actual contiene un shortcode
function has_shortcode( $shortcode = NULL ) {

    $post_to_check = get_post( get_the_ID() );

    // false porque primero debemos buscar en el contenido del post
    $found = false;

    // si no se proporcionó un shortcode, retorna false
    if ( ! $shortcode ) {
        return $found;
    }
    // busca el shortcode en el contenido del post
    if ( stripos( $post_to_check->post_content, '[' . $shortcode) !== FALSE ) {
        // hemos encontrado el shortcode
        $found = TRUE;
    }

    // retorna el resultado final
    return $found;
}

Luego, en tu plantilla, escribe una condición como,

if(has_shortcode('[gallery]')) {  
    // realiza acciones aquí  
} 

Idea de este enlace de NetTuts

15 mar 2012 19:44:17
Comentarios

3.6 introduce has_shortcode()

Ian Dunn Ian Dunn
19 jul 2013 23:23:10
0

WP ahora tiene una función incorporada para esto:

<?php
 
if ( shortcode_exists( 'gallery' ) ): ?>

    // El shortcode existe.

<?php else: ?>

   // NO EXISTE

<?php endif;?>

https://developer.wordpress.org/reference/functions/shortcode_exists/

8 abr 2021 21:14:25
0

WordPress te permite verificar si existe un shortcode o no.

Para verificarlo puedes usar la función shortcode_exists(). Devuelve verdadero si el shortcode existe.

<?php if ( shortcode_exists( $tag ) ) { } ?>

Donde $tag es el nombre del shortcode que deseas verificar.

<?php
if ( shortcode_exists( 'latest_post' ) ) {
    // El shortcode existe.
}
?>
1 ago 2017 18:55:34
0

Sé que es una pregunta antigua pero alguien aún podría necesitar esto, especialmente porque shortcode_exists() puede no funcionar para algunos shortcodes de plugins:

$shortcode_result = do_shortcode('[your_shortcode]');

if ($shortcode_result != [your_shortcode]) && 
    !empty($shortcode_result))] {

    // hacer lo que necesites

} else {
    // este no es un shortcode válido
}
11 oct 2019 11:58:59