文字サイズ:

カスタマイズ

【WordPress】1行でできる!ショートコードの中にショートコードを埋め込む方法!

投稿日:





★人生100年時代を生き抜くための情報をLINE@でお届けします!
 ご質問があればお気軽にメッセージを送ってくださいね!

友だち追加







過去の記事一覧は
こちらからどうぞ!



フクロウ(@Fukurou_Japan)です。

今回はショートコードの中にショートコードを埋め込む方法です。

 

これだけ聞いて『?』と思われアナタ。とりあえず読み勧めてください。

 

『この方法をめっちゃ知りたかった!』というアナタには朗報です。(私は実際にできて感動しました!)

 

 

 

 

 

 

ショートコードにショートコードを入れたくなった経緯とは?

 

ショートコードはWordpressでは有名ですので恐らくご存知ですよね。

 

テーマに多数用意されている場合もありますね。

 

編集画面などでカッコで囲って使用する例のアレです。

 

例えばStinger系でしたら、

[pc] pcだよ [/pc]

などと囲むとPCのみに標示される文章を書いたりできますよね。

 

なぜこのショートコードの中に更にショートコードを入れたくなったのかと言いますと、

私は【Post Snippets】というスニペットを作るプラグインを使用しており、そのプラグインでもショートコード表示をするのですが、これを他のショートコードで囲みたかったのです。

 

例を挙げるとこのような感じです。

 

[pc] [別のショートコード] [/pc]

 

残念ながら上記のようにショートコードの中にショートコード(以下、入れ子と表現)を入れると中に入っているコードは効かなくなってしまうのです。

 

それをぜひうまく動作させるために入れ子を実現したい! というのが今回やり方を調べ始めた始めた理由なのです。

 

 

 

1行でできる!ショートコードの中にショートコードを埋め込む方法!

 

探してみたらなんと、コードに1行を付け足すだけで完了する方法がありました!

 

これは感動的!

 

 

 

私は今回、私はfunction.phpに自分でショートカットの処理を追加しました。

 

ということでどこにどうコードを追加したか理解しているわけです。

 

ですので、作業自体も簡単でした。

 

 

 

ここで気をつける部分があります。

 

テーマに最初から用意されているショートコードを使用する場合はそこに該当するPHPのコードを修正しなければならないので、例え1行の追加であっても失敗のリスクもあります。(その場所が本当に正しいのかがわかりにくいため)

 

バックアップしておけばどちらの場合でも復活は簡単ですので、それだけは忘れないようにしてください。

 

ではやり方を說明します。

 

 

 

1行のコードを追加する場所

 

今回私が使ったコードを例に挙げます

 

編集前はコチラです。

if(is_mobile()) {
return '';
} else {
return '' . $content . '';
}
}

これはスマホじゃなければ何かをしなさい、というphp文ですね。

 

ここに1行追加します。

if(is_mobile()) {
return '';
} else {
$content = do_shortcode( shortcode_unautop( $content ) ); //ショートコードの中にショート
return '' . $content . '';
}
}

これだけです。実行したい部分のreturnの上に $content = ・・・の文言を追加するだけです。

 

ちなみに //以降の日本語の部分は無くてもかまいません。

 

これだけです!!

 

超簡単ですよね。

 

function.phpをいじるのがちょっと怖いようでしたら以前ご紹介しました、Code Snippetsプラグインを使用すると安全ですよ。

 

今回の1行追加の方法は以下のサイトを参考にさせていただきました。

9inBB

 

 

 

まとめ

 

最初はプラグインでなんとかならないかな? と思ったのですが、ややこしくなりそうでしたので、今回はコードに直接追加する方法を選択しました。

 

このショートコードの入れ子ができただけでWordpressでの表現や処理の幅が広がりますので、是非活用してみてくださいね!

 

それではまた次回!

 

関連記事

 

1つ星 (←いいねをタップしてね!)
読み込み中...

-カスタマイズ
-, , , ,

Copyright© フクロウ情報局 , 2020 All Rights Reserved Powered by STINGER.