# [メタ情報] # 識別子: 動画ショートコードの生成php_exe # システム名: 動画ショートコードの生成(動画埋め込みのショートコード) # 技術種別: Misc # 機能名: Misc # 使用言語: php # 状態: 実行用 env化終了 差異正常 # [/メタ情報] 要約:WordPressのショートコード [videoembed videoid="..."] を定義する関数。 指定された videoid に基づいて videoembed.json を取得し、対応するレコードの embedCode を実行して動画を埋め込む。videoid が指定されていない、JSONが取得できない、または該当レコードが見つからない場合は「動画はまだ準備中です。」と表示する。 動画ショートコードの生成php Cocoon Child functions.php ``` ''), $atts, 'videoembed'); $video_id = $atts['videoid']; if (empty($video_id)) return '
動画はまだ準備中です。
'; if (function_exists('get_alt_video_id')) { $video_id = get_alt_video_id($video_id); } // ドメインの直書きを排除し、サイトの動的URLから解決 if (defined('VIDEOEMBED_JSON_URL')) { $json_url = VIDEOEMBED_JSON_URL; } else { $json_url = site_url('/gd_proxy/?f=videoembed.json'); } $response = wp_remote_get($json_url); if (is_wp_error($response)) return '動画はまだ準備中です。
'; $data = json_decode(wp_remote_retrieve_body($response), true); if (!is_array($data)) return '動画はまだ準備中です。
'; foreach ($data as $entry) { if (isset($entry['videoid']) && (string)$entry['videoid'] === (string)$video_id) { return do_shortcode($entry['embedCode']); } } return '動画はまだ準備中です。
'; } add_shortcode('videoembed', 'videoembed_shortcode'); ?> ```