1

私は素晴らしい Pods プラグインを使用して、Wordpress の基本的なコンテンツ タイプをいくつかのカスタム タイプで拡張しています。高度なカスタム タイプを作成しました。つまり、ネイティブのページ/投稿タイプに組み込まれた自動 oEmbed サポートが得られません。カスタム コンテンツ タイプに PHP ページ テンプレートを使用するポッド ページがあり、ビデオを埋め込むことができる WYISWYG フィールドで oEmbed オプションが有効になっているように構成しました。

基本的な関数が埋め込みを自動的に処理する必要があることを示しているように見えるこの投稿を見つけましたが、それ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が、どれも機能していないようです。iFrame 埋め込みコード全体をテンプレートに書き込んでも機能せず、空の iFrame しか表示されないため、Pod ページのスコーピング/競合の問題である可能性があると思います。グローバル 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>
4

2 に答える 2

1

field() はフィールドの値を取得し、display() はフィールドの出力を取得します (フィールドが実行するように構成されている関連するフィルター/関数を実行します)。

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

する必要があります

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

詳細については、 http ://pods.io/docs/field/ と http://pods.io/docs/display/参照してください。

于 2013-03-25T23:20:46.570 に答える
0

apply_filters('oembed_dataparse', $mycontent)これは、デフォルトでは対応していない他のデータ タイプ (写真、ビデオなど) を処理するための機能を追加することを意味するため、呼び出しは正しくありません。あなたがしたいことは、WordPress がどのように埋め込みを行うかを模倣することです。以下のコードはテストしていませんが、埋め込み機能をトリガーする方法のように思えます。

global $wp_embed;

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

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

echo $output;
于 2013-03-25T22:13:51.273 に答える