Use oEmbed in List Items

时间:2013-05-15 作者:BFTrick

我知道WordPressoEmbed functionality. 但要嵌入的内容必须在自己的线上,如下所示:

Lorem Ipsum

http://www.youtube.com/link/to/content

More Lorem Ipsum
不幸的是,我的标记看起来像这样,所以oEmbed不起作用,我必须使用插件。

<ul>
    <li>http://www.youtube.com/link/to/content</li>
    <li>http://www.youtube.com/link/to/content</li>
</ul>
没有这个插件,我还能继续工作吗?函数中的一行或两行。php会比这个插件更好。

2 个回复
最合适的回答,由SO网友:Otto 整理而成

只需使用[embed] 对项目进行快捷编码。

<ul>
    <li>[embed]http://www.youtube.com/link/to/content[/embed]</li>
...

SO网友:Rarst

有一点特殊的过滤方式WP_Embed 类,该类将独立链接转换为嵌入的目标:

/**
 * Passes any unlinked URLs that are on their own line to {@link WP_Embed::shortcode()} for potential embedding.
 *
 * @uses WP_Embed::autoembed_callback()
 *
 * @param string $content The content to be searched.
 * @return string Potentially modified $content.
 */
function autoembed( $content ) {
    return preg_replace_callback( \'|^\\s*(https?://[^\\s"]+)\\s*$|im\', array( $this, \'autoembed_callback\' ), $content );
}
如果我们采用该逻辑并根据您的用例调整regex:

add_filter( \'the_content\', \'autoembed_list_items\', 8 );

function autoembed_list_items( $content ) {

    global $wp_embed;

    return preg_replace_callback( \'|<li>(https?://[^\\s"]+)</li>|im\', array( $wp_embed, \'autoembed_callback\' ), $content );
}

结束

相关推荐

显示YouTube时间自动从关键点开始

为什么我在制作预告片,我想从Youtube视频的。。。自定义字段$key=“拖车”表示拖车Ex的钥匙(http://www.youtube.com/watch?v=QiNIfGiNiOk WARE key=QiNIfGiNiOk)$key=“img\\U拖车”是youtube 0的img。jpg是youtube视频的时间,这是我手动输入的问题“我可以让youtube时间自动检索吗?如何让代码使用更少的查询?”这是我的代码:<?php $recentPosts = new WP_Query()