WordPressで特定のショートコードの存在を判定する方法

ページ内や記事の中に特定のショートコードが存在するかを、if文の条件分岐を用いて調べる方法の備忘録です。
特定のショートコードが使用されている時だけ、特定のスクリプトを読み込んだり、表示を切り替えたりしたい場合に役立ちます。
ショートコードが存在するか調べる方法
WordPressには、ショートコードの有無を判定するためのhas_shortcode()という関数が用意されています。
以下のコードをテンプレートファイル(single.php など)のループ内で使用することで、記事の内容に特定のショートコードが含まれているかをチェックできます。
<?php
if ( has_shortcode( get_the_content(), 'sample' ) ) {
echo "ショートコードがあります";
endif;
?>
if文にhas_shortcode()を設定して、記事の中に特定のショートコードが存在するか判定します。
一つ目の引数には、ショートコードを検索する対象の文字列を設定します。今回は記事内のコンテンツを対象にするget_the_content()を指定しています。
二つ目の引数には、チェックしたいショートコードのタグ名を設定します。
if文の中には、ショートコードが存在した時の処理を記入します。
メインループ以外で判定する場合
メインループの外で投稿データにアクセスする時など、get_the_content()を使用できない場合は、global $postを使用して取得した内容から判定します。
<?php
global $post;
if( has_shortcode( $post->post_content, 'sample' ) ){
echo "ショートコードがあります";
}
?>
一つ目の引数に$post->post_contentを指定して、ページの本文に特定のショートコードが存在した時に処理を実行します。


