2013-03-25 139 views
0

我使用奇妙的Pods插件來擴展WordPress的基本內容類型和一些自定義的內容類型。我構建了一個高級自定義類型,這意味着我沒有在本地頁面/帖子類型中創建自動oEmbed支持。我已經構建了它,因此我的自定義內容類型具有使用PHP頁面模板的pod頁面,並且我已爲可嵌入視頻的WYISWYG字段啓用oEmbed選項。Wordpress(Pods)oEmbed Items

我發現this post這似乎表明,一個基本的apply_filter函數應該會自動處理任何嵌入,但我似乎無法得到它的工作。我有點新過濾器。我試過代碼如下:

<?php 
// Fetch body field content from $pods object 
$mycontent = $pods->field('field_body'); 
$output = apply_filters('oembed_dataparse', $mycontent); 
echo $output; 
?> 

我嘗試了各種不同的過濾器,如the_content等,但似乎沒有工作。我相信這可能是Pod頁面的一個範圍/衝突問題,因爲即使將整個iFrame嵌入代碼寫入模板也不起作用,只會顯示一個空的iFrame。全球透過oEmbed功能不相同,即

$videourl = 'http://www.youtube.com/watch?v=dQw4w9WgXcQ'; 
$htmlcode = wp_oembed_get($videourl); 
echo $htmlcode; 

在頁面模板的情況下將輸出:

<iframe width="500" height="375" frameborder="0" allowfullscreen="" src="http://www.youtube.com/embed/dQw4w9WgXcQ?feature=oembed"> 
    <html> 
     <head> 
     </head> 
     <body> 
     </body> 
    </html> 
</iframe> 

回答

0

調用apply_filters('oembed_dataparse', $mycontent)是不正確,因爲這意味着用於處理其他數據類型添加功能(照片,視頻等),默認情況下不適合。你想要做的是模仿WordPress如何嵌入。我沒有測試過下面的代碼,但在我看來,去觸發嵌入功能的方法:

global $wp_embed; 

$mycontent = $pods->field('field_body'); 

$output = $wp_embed->autoembed($mycontent); 

echo $output; 
+0

謝謝,但我覺得像可能是在羣頁面的呈現方式。正常的Youtube'