概要
apply_shortcodes関数は、WordPressにおけるショートコードの変換を処理するための関数です。この関数は、特に次のような機能を実装する際によく使用されます:
- 投稿やページコンテンツにショートコードを埋め込む。
- カスタムフィールドで使用されるショートコードを評価する。
- プラグイン内でのショートコードの統合。
- テーマのテンプレートファイル内でショートコードを使用。
- ウィジェットの文言でショートコードをサポートする。
- 短いリンクやボタンなどを生成するショートコードの実装。
- カスタムのユーザーインターフェース要素を追加するためのショートコードの生成。
- 他のコンテンツ要素と連携した高度な機能を持つショートコードを使用。
構文
string apply_shortcodes( string $content );
パラメータ
string $content: ショートコードを含む文字列。
戻り値
string: ショートコードが適用された後の文字列。
関連する関数
使用可能なバージョン
- WordPress 2.5.0以降。
コアファイルのパス
wp-includes/shortcodes.php
サンプルコード
サンプル1: 単純なショートコードの適用
$content = "Hello [greet]!";
echo apply_shortcodes($content);
このサンプルでは、[greet]ショートコードが含まれた$contentを定義し、apply_shortcodesを用いてショートコードを変換します。
引用元: https://developer.wordpress.org/reference/functions/apply_shortcodes/
サンプル2: カスタムショートコードの定義
function custom_greet_shortcode() {
return "Hello, World!";
}
add_shortcode('greet', 'custom_greet_shortcode');
$content = "Greetings: [greet]";
echo apply_shortcodes($content);
ここでは、greetというショートコードをカスタム関数で定義し、その後にapply_shortcodesを使用して変換を行っています。
引用元: https://developer.wordpress.org/reference/functions/add_shortcode/
サンプル3: 複数ショートコードの適用
function hello_shortcode() {
return "Hello";
}
function world_shortcode() {
return "World!";
}
add_shortcode('hello', 'hello_shortcode');
add_shortcode('world', 'world_shortcode');
$content = "[hello], [world]";
echo apply_shortcodes($content);
このサンプルでは、二つのショートコードを定義し続けて変換を行います。
引用元: https://developer.wordpress.org/reference/functions/add_shortcode/
サンプル4: ショートコード引数の使用
function greet_with_name($atts) {
$atts = shortcode_atts(array('name' => 'Guest'), $atts);
return "Hello, " . esc_html($atts['name']) . "!";
}
add_shortcode('greet', 'greet_with_name');
$content = "[greet name='Alice']";
echo apply_shortcodes($content);
ショートコードに引数を追加し、その引数を利用してカスタマイズされた出力を生成しています。
引用元: https://developer.wordpress.org/reference/functions/shortcode_atts/
サンプル5: ショートコードのエスケープ
function escape_shortcode_content($content) {
return esc_html($content);
}
add_shortcode('escape', 'escape_shortcode_content');
$content = "[escape]This is <b>bold</b> text![/escape]";
echo apply_shortcodes($content);
ショートコードを用いてコンテンツをエスケープし、安全に出力されるようにします。
引用元: https://developer.wordpress.org/reference/functions/esc_html/
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | 〇 |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | 〇 |
| register_sidebar | |
| wp_loaded | 〇 |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | 〇 |
| template_redirect | |
| get_header | |
| wp_head |
非推奨または削除されたバージョン
- 現在のところ、
apply_shortcodes関数は特定のバージョンで非推奨や削除されていません。