ユーザーが動画のYoutube URLを貼り付けて投稿/ページに埋め込めるようにするカスタムメタボックスを設定しました。
ユーザーが望むだけの数のURLを追加できるようにメタボックスを繰り返すことができるので、このコードスニペットを使用してそれぞれをリストアイテムとして表示します。
<?php
$video = get_post_meta($post->ID, 'youtube-url');
foreach ($video as $vid) {
echo '<li>'.$vid.'</li>';
}
?>
Wordpressに同梱されているoEmbedを利用できるように、個々のリスト項目に対してthe_content
フィルタを実行する方法はありますか?
それとももっと効率的な方法があるのでしょうか...
あなたがする必要があるのは apply_filters
を使うことです。
foreach ($video as $vid) {
echo '<li>'.apply_filters('the_content',$vid).'</li>';
}
may は、文字列を連結してからフィルタ全体を実行するほうが効率的です。
$lis = '';
foreach ($video as $vid) {
$lis .= '<li>'.$vid.'</li>';
}
echo apply_filters('the_content',$lis);
私は一方をもう一方に対してベンチマークしていませんが、後者がフィルターを1回呼び出し、前者が何度も呼び出すので、私は後者に賭けます。