您需要设置全局$post
反对你的帖子。这是由主题中的循环函数完成的,这就是它在那里工作的原因。
WP的oEmbed在the_content
滤器但它通过两种方式替换URL。第一种是对某些URL(如Google视频)进行简单的regex查找和替换,或者直接链接到具有视频格式扩展名的文件。
oEmbed处理它的第二种方式是处理大多数服务(如YouTube)的方式。第二种方法与第一种方法类似,只是结果存储在postmeta
这就是为什么我们需要设置$post
. 第二种方法是询问各种服务处理程序URL是否是他们的。如果URL是他们的,他们将生成嵌入的HTML。然后oEmbed将URL的HTML缓存到postmeta
桌子这是因为服务可能需要远程API调用才能获取HTML代码,我们希望每次显示帖子时都能将此开销降至最低。
include(\'../wp-load.php\');
$thePost = get_post(42);
// Set our post to the globally used $post object as oEmbed will use it to do a meta value lookup
global $post;
$post = $thePost;
echo apply_filters(\'the_content\', $thePost->post_content );