3

まず、このプラグインを使用しています

http://wordpress.org/extend/plugins/my-youtube-playlist/ & このテーマ、www.press75.com/themes/on-demand/this-is-a-sample-video-post-4/

私の意図は、現在 1 つのビデオしか表示されていないテーマの灰色の領域に YouTube プレイリストを表示することです。私の意図は、プラグインショートコードを配置できる場所としてテーマのYoutubeコード埋め込みフィールドを使用し、プラグインに投稿に必要なプレイリストを作成させることでした. ただし、プラグインが投稿のコンテンツ領域に配置されていない場合、プラグインにショートコードを実行させることができませんでした。

ビデオ リンクが投稿されるか、テーマの関連フィールドにビデオ埋め込みコードが入力されると、テーマはビデオ コンテナ Div (ビデオの灰色の領域) を作成します。

私は次のことを試しました

  • [myyoutubeplaylist LO3n67BQvh0, WGOohBytKTU, iwY5o2fsG7Y, PyKNxUThW4E, 1cX4t5-YpHQ, SJ183htYl-8, eWwoHPrrJYY, bja2ttzGOFM]単一の投稿 php ファイルにハードコーディングして、プラグがそれを取得するかどうかを確認します。運がない。ショートコードを画面に出力するだけです

  • <?php echo do_shortcode('[myyoutubeplaylist LO3n67BQvh0, WGOohBytKTU, iwY5o2fsG7Y, PyKNxUThW4E, 1cX4t5-YpHQ, SJ183htYl-8, eWwoHPrrJYY, bja2ttzGOFM]'); ?>それがそれを拾うかどうかを確認するためのハードコーディング。運がない。ショートコードを画面に出力するだけです。

  • テンプレートでショートコード パラメータを次の場所にダンプします
    <?php echo do_shortcode( get_video($post->ID); ?>。運がない。ショートコードを画面に出力するだけです

  • テーマによって作成されたビデオ コンテナ div の外側で上記のすべてを繰り返す

私はアイデアから新鮮なので、あらゆる助けをいただければ幸いです

4

5 に答える 5

1

これを functions.php ファイルに入れます。

add_filter('widget_text', 'do_shortcode');

次に、メイン コンテンツ エリアと同じように、サイドバーでショートコードを使用します。

于 2010-12-16T17:06:07.923 に答える
0

またはこれを試してください-TubePress

いくつかの方法でテーマにコーディングでき、CSS で簡単に外観を編集できます...

編集:投稿/ページの外にチューブプレスショートコードを埋め込む方法(これのいくつかはプロバージョンに付属しているように見えます)

于 2010-12-16T14:51:15.987 に答える
0

この質問はかなり古いことはわかっていますが、どの回答も解決していないため、洞察を提供することについて説明します。

コンテンツのショートコードをテーマの別の領域に配置しようとしている場合は、フィルターを登録し、ショートコードを実行する場所に呼び出しを追加する必要があります。あなたが質問でやろうとしていることと同様の機能を持つショートコードが欲しいとしましょう - しかし、興味のある人のために最初から始めます.

このhttps://www.youtube.com/watch?v=eh7lp9umG2Iのような直接の YouTube リンクからビデオを出力する新しいショートコードを登録することから始めます。これにより、ユーザーは手動で解析を行う必要がなくなります (実際には最後のパラメーターのみが必要です)。

この後、フィルターを登録する必要があります。この場合、このビデオをコンテンツから取り出して別の場所に配置したいので、「the_content」にフィルターを適用します。

次に、フィルターがショートコードを削除する前にショートコードのコピーを確実に取得する関数を作成します - すべてを DRY に保ちます。

最後に、ビデオを出力する必要があります。

function your_shortcode_handler($atts)
{
    $url = $atts['video'];

    if (isset($url))
    {
        $type = 'application/x-shockwave-flash';
        $url  = str_replace("watch?v=", 'v/', $url);

        $obj  = "<object data='$url' type='$type'><param name='src' value='$url' /></object>"

        return $obj;
    }
}

add_shortcode('your_shortcode_name', 'your_shortcode_handler');

function your_shortcode_filter($content)
{
    $pattern = "/\[your_shortcode_name(.*?)\]/";

    $content = preg_replace($pattern, '', $content);

    return $content;
}

add_filter('the_content', 'your_shortcode_filter');

function stealFromContent($content)
{
    $pattern = "/\[your_shortcode_name(.*?)\]/";
    $match = null;

    preg_match($pattern, $content, $match);

    if (is_array($match) and $match[0] != '')
    {
        return $match[0];
    }

    return '';
}

//somewhere in the template you're wanting to add the video to
//BEFORE the_content is called.
$youtube_video = stealFromContent();

//then

echo $youtube_video; //wherever you want it.

さて、著者の質問に答えます。このプラグインを書いた個人の選択タイプは、ショートコードを使用していません。彼は、私が上記で行っているのと同様に the_content を正規表現し、それらの値を JavaScript ライブラリに渡しています。

do_shortcode が呼び出されると、すべてのショートコードが解析され、ショートコード以外の値は無視されます。良いヒントは、あなたが提供しているショートコードが単にショートコードではないという事実でした - [word space word space] は無効です.

参考までにソースファイル

于 2014-02-28T08:08:50.690 に答える
-1

このプラグインを試してみませんか?

http://wordpress.org/extend/plugins/smart-youtube/

于 2010-12-16T05:08:09.370 に答える
-1
<?php echo myYoutubePlaylist('[myyoutubeplaylist WnY59mDJ1gg, bKwQ_zeRwEs]'); ?>
于 2012-04-12T10:17:41.137 に答える