¿Cómo verificar si existe un shortcode?
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

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

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)

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

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

3.6 introduce has_shortcode()

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/

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.
}
?>

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
}
