web-dev-qa-db-fra.com

Comment vérifier si un shortcode existe?

J'utilise la fonction do_shortcode pour ajouter un shortcode dans mon modèle. Mais je voudrais vérifier si ce shortcode existe avant de les afficher.

Je veux dire comme ça

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

Quelqu'un peut-il m'aider? Merci

5
Giri

# 23572 introduction shortcode_exists () dans 3.6.

5
Ian Dunn

Je pense que vous pourriez utiliser le code suivant pour cela:

$content = get_the_content();
//write the begining of the shortcode
$shortcode = '[gallery';

$check = strpos($content,$shortcode);
if($check=== false) {
  //Code to execute if there isn't the shortcode
} else {
  //Code to execute if the shortcode is present
}

(Avertissement: non testé)

4
Ryan

Vous pouvez créer votre propre fonction,

// check the current post for the existence of a short code
function has_shortcode( $shortcode = NULL ) {

    $post_to_check = get_post( get_the_ID() );

    // false because we have to search through the post content first
    $found = false;

    // if no short code was provided, return false
    if ( ! $shortcode ) {
        return $found;
    }
    // check the post content for the short code
    if ( stripos( $post_to_check->post_content, '[' . $shortcode) !== FALSE ) {
        // we have found the short code
        $found = TRUE;
    }

    // return our final results
    return $found;
}

Dans votre modèle, écrivez un conditionnel comme,

if(has_shortcode('[gallery]')) {  
    // perform actions here  
} 

Idée tirée de ce lien NetTuts

3
Wyck

Trouvé cette ligne quelque part et utilisé est une ou deux fois

//first we check for shortcode in the content
$tempContent = get_the_content();
$tempCheck = '[gallery';

$tempVerify = strpos($tempContent,$tempCheck);
if($tempVerify === false) {
  //Your Shortcode not found do nothing ? you choose
} else {
    echo do_shortcode('[gallery]');
}

.

(je sais que la [galerie manque le] .. le laisse comme ça)

Ceci devrait être utilisé à l'intérieur de la boucle ..
J'espère que cela vous aidera, Sagive

1
Sagive SEO

WordPress vous permet de vérifier si un shortcode existe ou non.

Pour le vérifier, vous pouvez utiliser shortcode_exists() function. Il retourne vrai si le shortcode existe.

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

$tag est le nom du shortcode que vous voulez vérifier.

<?php
if ( shortcode_exists( 'latest_post' ) ) {
    // The short code exists.
}
?>
0
Chandra Kumar