WordPressの始め方と使い方をわかりやすく解説!

WordPressでショートコードを入れ子にして実行する方法

WordPressのショートコードの中で、ショートコードを記述しても、内部にあるショートコードは実行されずそのまま表示される場合があります。

エディターで次のような記載を行なった場合です。

[foo]
  [bar]
[/foo]

これを解決するには、次の2つの方法があります。

  1. 呼び出しもとのショートコードでdo_shortcode()関数を使用する
  2. プラグイン「Outerbridge Nested Shortcodes」を利用する

WordPressでショートコードを入れ子にして実行する2つの方法

2つのショートコード

  1. [ul]
  2. [li]

を以下のように定義した場合に

add_shortcode("ul", "ul_func");
function ul_func($atts, $content = null) {
    return '<ul>'. $content .'</ul>';
}

add_shortcode("li", "li_func");
function li_func($atts, $content = null) {
    return '<ul>'. $content .'</ul>';
}

エディターで次の記載を行うと

[ul]
  [li]アイテム1[/li]
  [li]アイテム2[/li]
  [li]アイテム3[/li]
[/ul]

HTML上では、次のような出力になってしまいます。

<ul>
  [li]アイテム1[/li]
  [li]アイテム2[/li]
  [li]アイテム3[/li]
</ul>

しかし、次のようなHTML出力を期待しているはずです。

<ul>
  <li>アイテム1<li>
  <li>アイテム2<li>
  <li>アイテム3<li>
</ul>

これを修正する2つの方法を解説します。

①呼び出しもとのショートコードでdo_shortcode()関数を使用する

呼び出しもとのショートコードの$contentに対して、do_shortcode()関数を使用します。

今回の例では、[li]を呼び出している[ul]$contentに、do_shortcode()関数を使用します。

add_shortcode("ul", "ul_func");
function ul_func($atts, $content = null) {
    return '<ul>'. do_shortcode($content) .'</ul>';
}

add_shortcode("li", "li_func");
function li_func($atts, $content = null) {
    return '<ul>'. $content .'</ul>';
}

②プラグイン「Outerbridge Nested Shortcodes」を利用する

Nested Shortcodes by Outerbridge

Author(s): Outerbridge

Current Version: 1.4

Last Updated: 2022年9月1日

nested-shortcodes.zip

96%Ratings 1,000+Installs WP 4.0+Requires

「Outerbridge Nested Shortcodes」の使い方は簡単です。インストールし、有効化するだけです。

特に難しい設定・操作はありません。

関連記事

FOXWP

Conoha WINGからエックスサーバーにWordPressの引越しを行う手順

Conoha WINGからエックスサーバーに引越しを行う手順 Conoha WINGからエックスサーバーに引越しを行う際の注意点 ネームサーバーがエックスサーバーのネームサーバーに設定されていないと、無料独自SSLの設定

FOXWP

wp-envで構築したWordPressのデータベースへアクセスする手順

wp-envで構築したローカル開発環境のデータベースにサクセスするには、Local WordPress EnvironmentのAccessing the MySQL Databaseに記載されている方法で行えます。 参

FOXWP

【WordPress】はじめてのブロックエディター開発

この記事では、WordPressでブロック開発をした際のメモです。 WordPressで必要最低限のブロックを開発するには、@wordpress/create-blockパッケージを作成することですぐにできます。 参考:

FOXWP

wp-envとは?使い方を解説

wp-envを利用した際のメモです。 wp-envとは? ローカルのWordPress開発環境 wp-envとは、ローカルのWordPress開発環境です。Docker Desktopと合わせて利用します。 wp-env

FOXWP

WordPressのおすすめセキュリティプラグイン6選

WordPressセキュリティプラグインを使えば、専門的知識がない方でも手軽にセキュリティ対策を行うことができます。 マルウェア・ブルーフォースアタック・ハッキングといった様々な障害からあなたを守ってくれます。 この記事

FOXWP

WordPressでおすすめの目次プラグイン8選

記事に目次を挿入すれば、読者に記事の全体像を理解してもらいやすくなります。欲しい情報があるか判断する手助けとなり、読者にとって使いやすいサイトと認識してもらえます。 この記事では、目次を挿入できるおすすめのWordPre