web-dev-qa-db-ja.com

ショートコードが存在するかどうかを確認する方法

テンプレートにショートコードを追加するためにdo_shortcode関数を使用しています。しかし、私はそれらを表示する前にそのショートコードが存在するかどうかチェックしたいのです。

こんな感じ

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

誰かが私を手伝ってくれる?ありがとう

5
Giri

#23572 3.6 /に shortcode_exists() を導入。

5
Ian Dunn

これを行うには、次のコードを使用できると思います。

$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
}

(警告:未テスト)

4
Ryan

あなた自身の関数を作成することができます

// 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;
}

あなたのテンプレートの中には、

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

これからのアイデア NetTutsリンク

3
Wyck

これはどこかでオンラインで見つけましたそして使われるのは一度か二度です

//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]');
}

(私は[ギャラリーが見つからない]を知っています..そうにしておきます)

これはループの中で使われるべきです ..
これが助けになれば幸いです、Sagive

1
Sagive SEO

WordPressでは、ショートコードが存在するかどうかを確認できます。

確認するには shortcode_exists() functionを使います。ショートコードが存在する場合はtrueを返します。

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

$tagは確認したいショートコードの名前です。

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