Cum să verifici dacă există un shortcode?

15 mar. 2012, 19:04:05
Vizualizări: 22.6K
Voturi: 6

Folosesc funcția do_shortcode pentru a adăuga shortcode în template-ul meu. Dar aș dori să verific dacă acel shortcode există înainte de a-l afișa.

Mă refer la ceva de genul:

if (shortcode_exists('gallery')) {
    echo do_shortcode('[gallery]');
}

Mă poate ajuta cineva? Mulțumesc

0
Toate răspunsurile la întrebare 7
0

#23572 a introdus shortcode_exists() în versiunea 3.6.

19 iul. 2013 22:44:42
1

Cred că ai putea folosi următorul cod pentru a face asta:

$content = get_the_content();
//scrie începutul shortcode-ului
$shortcode = '[gallery';

$check = strpos($content,$shortcode);
if($check=== false) {
  //Cod de executat dacă shortcode-ul nu este prezent
} else {
  //Cod de executat dacă shortcode-ul este prezent
}

(Atenție: netestat)

15 mar. 2012 19:26:08
Comentarii

Aceasta funcționează, fără "[" în numele shortcode-ului.

herrfischer herrfischer
18 ian. 2023 12:18:43
1

Am găsit acest cod online și l-am folosit o dată sau de două ori

//mai întâi verificăm dacă există shortcode în conținut
$tempContent = get_the_content();
$tempCheck = '[gallery';

$tempVerify = strpos($tempContent,$tempCheck);
if($tempVerify === false) {
  //Shortcode-ul nu a fost găsit, nu facem nimic? tu decizi
} else {
    echo do_shortcode('[gallery]');
}

.

(știu că [gallery nu are ].. lasă-l așa)

Acest cod ar trebui folosit în interiorul loop-ului ..
Sper că te ajută, Sagive

15 mar. 2012 19:26:27
Comentarii

OMG @Ryan m-a bătut la postare.. :) am postat la câteva secunde distanță, cred că n-am văzut răspunsul lui :) scuze ryan - ai fost mai rapid..

Sagive Sagive
15 mar. 2012 19:27:30
1

Puteți crea propria funcție,

// verifică dacă postarea curentă conține un shortcode specific
function has_shortcode( $shortcode = NULL ) {

    $post_to_check = get_post( get_the_ID() );

    // inițializăm cu false deoarece trebuie să căutăm în conținutul postării
    $found = false;

    // dacă nu este furnizat niciun shortcode, returnăm false
    if ( ! $shortcode ) {
        return $found;
    }
    // verificăm conținutul postării pentru shortcode
    if ( stripos( $post_to_check->post_content, '[' . $shortcode) !== FALSE ) {
        // am găsit shortcode-ul
        $found = TRUE;
    }

    // returnăm rezultatul final
    return $found;
}

Apoi în template puteți scrie o condiție precum,

if(has_shortcode('[gallery]')) {  
    // efectuați acțiuni aici  
} 

Idee preluată de la acest link NetTuts

15 mar. 2012 19:44:17
Comentarii

Versiunea 3.6 introduce has_shortcode()

Ian Dunn Ian Dunn
19 iul. 2013 23:23:10
0

WP are acum o funcție încorporată pentru asta:

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

    // Shortcode-ul există.

<?php else: ?>

   // NU EXISTĂ

<?php endif;?>

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

8 apr. 2021 21:14:25
0

WordPress vă permite să verificați dacă un shortcode există sau nu.

Pentru a face această verificare, puteți utiliza funcția shortcode_exists(). Aceasta returnează true dacă shortcode-ul există.

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

Unde $tag reprezintă numele shortcode-ului pe care doriți să îl verificați.

<?php
if ( shortcode_exists( 'latest_post' ) ) {
    // Shortcode-ul există.
}
?>
1 aug. 2017 18:55:34
0

Știu că este o întrebare veche, dar cineva ar putea avea nevoie de această informație, mai ales pentru că shortcode_exists() poate să nu funcționeze pentru unele shortcode-uri din plugin-uri:

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

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

    // fă ce ai nevoie

} else {
    // acesta nu este un shortcode valid
}
11 oct. 2019 11:58:59