Come verificare se esiste uno shortcode?
Sto utilizzando la funzione do_shortcode
per aggiungere shortcode nel mio template. Ma vorrei verificare se quello shortcode esiste prima di visualizzarlo.
Intendo qualcosa del genere
if (shortcode_gallery_exists) {
echo do_shortcode('[gallery]');
}
Qualcuno può aiutarmi? Grazie
#23572 ha introdotto shortcode_exists() nella versione 3.6.

Penso che potresti utilizzare il seguente codice per fare questo:
$content = get_the_content();
//scrivi l'inizio dello shortcode
$shortcode = '[gallery';
$check = strpos($content,$shortcode);
if($check=== false) {
//Codice da eseguire se lo shortcode non è presente
} else {
//Codice da eseguire se lo shortcode è presente
}
(Nota: non testato)

Ho trovato questo online da qualche parte e l'ho usato una o due volte
//prima controlliamo la presenza dello shortcode nel contenuto
$tempContent = get_the_content();
$tempCheck = '[gallery';
$tempVerify = strpos($tempContent,$tempCheck);
if($tempVerify === false) {
//Shortcode non trovato, non fare nulla? decidi tu
} else {
echo do_shortcode('[gallery]');
}
.
(so che a [gallery manca il ].. lascialo così com'è)
Questo codice dovrebbe essere utilizzato all'interno del loop
..
Spero che sia utile, Sagive

Puoi creare la tua funzione personalizzata,
// verifica la presenza di uno shortcode nel post corrente
function has_shortcode( $shortcode = NULL ) {
$post_to_check = get_post( get_the_ID() );
// false perché dobbiamo prima cercare nel contenuto del post
$found = false;
// se non viene fornito alcuno shortcode, restituisce false
if ( ! $shortcode ) {
return $found;
}
// controlla il contenuto del post per lo shortcode
if ( stripos( $post_to_check->post_content, '[' . $shortcode) !== FALSE ) {
// abbiamo trovato lo shortcode
$found = TRUE;
}
// restituisce il risultato finale
return $found;
}
Poi nel tuo template scrivi una condizione come,
if(has_shortcode('[gallery]')) {
// esegui azioni qui
}
Idea tratta da questo link NetTuts

La versione 3.6 introduce has_shortcode()

WP ora ha una funzione integrata per questo:
<?php
if ( shortcode_exists( 'gallery' ) ): ?>
// Lo shortcode esiste.
<?php else: ?>
// NON ESISTE
<?php endif;?>
https://developer.wordpress.org/reference/functions/shortcode_exists/

WordPress ti permette di verificare se un shortcode esiste o meno.
Per controllarlo puoi usare la funzione shortcode_exists()
. Restituisce true se lo shortcode esiste.
<?php if ( shortcode_exists( $tag ) ) { } ?>
Dove $tag
è il nome dello shortcode che vuoi verificare.
<?php
if ( shortcode_exists( 'latest_post' ) ) {
// Lo shortcode esiste.
}
?>

So che è una domanda vecchia, ma qualcuno potrebbe ancora averne bisogno, soprattutto perché shortcode_exists()
potrebbe non funzionare con alcuni shortcode dei plugin:
$shortcode_result = do_shortcode('[your_shortcode]');
if ($shortcode_result != [your_shortcode]) &&
!empty($shortcode_result))] {
// fai quello che ti serve
} else {
// questo non è uno shortcode valido
}
