web-dev-qa-db-ja.com

ショートコードが機能しない

ショートコードを使用してTed talkビデオを埋め込もうとしています。

[ted id=myid]

しかし、うまくいきません。ビデオの代わりにテキストが表示されます。動作させるために確認する必要がある設定はありますか?

5
flero

残念ながら、これはあなたにとって問題になるでしょう。

[ted]というショートコードはWordPress.comに固有のものです - WordPress.orgからソフトウェアを自分でインストールした自営業のサイトには当てはまりません。

WordPress.orgのソフトウェアがデフォルトでサポートしている唯一の埋め込みは、Codexにリストされている だけです

  • YouTube(一般公開動画と再生リストのみ - 「限定公開」と「非公開」の動画は埋め込まれません)
  • ビメオ
  • デイリーモーション
  • blip.tv
  • Flickr(ビデオと画像の両方)
  • ヴィドラー
  • フル
  • Qik
  • 改訂3
  • 走り書き
  • フォトバケット
  • PollDaddy
  • WordPress.tv(当面はVideoPressタイプのビデオのみ)
  • SmugMug(WordPress 3.0以降)
  • FunnyOrDie.com(WordPress 3.0以降)
  • Twitter(ワードプレス3.4以降)

ただし、Ted講演を埋め込むためのプラグインがあります。 TEDトーク埋め込み 。しかし、それはWP 3.2.1を通して互換性を列挙しているだけなので、それは現在のバージョンでは動作しないかもしれません(しかし、私はそれを保証できません)。


代替の実際の埋め込み

プラグインを使用したくない場合は、これが代替方法です。テーマのfunctions.phpファイルに以下を追加してください。

// Whitelist the TEDTalks oEmbed URL
wp_oembed_add_provider( 'http://www.ted.com/talks/*', 'http://www.ted.com/talks/oembed.json' );

function ted_shortcode( $atts ) {
    // We need to use the WP_Embed class instance
    global $wp_embed;

    // The "id" parameter is required
    if ( empty($atts['id']) )
        return '';

    // Construct the TEDTalk URL
    $url = 'http://www.ted.com/talks/view/lang/eng/id/' . $atts['id'];

    // Run the URL through the  handler.
    // This handler handles calling the oEmbed class
    // and more importantly will also do the caching!
    return $wp_embed->shortcode( $atts, $url );
}
add_shortcode( 'ted', 'ted_shortcode' );

これで、TEDTalksを2つの方法で埋め込むことができます。

楽しい!

5
EAMann

Jetpackプラグイン を使うと、WordPressのセルフホストサイトで[ted]ショートコードを使用できます。

0
Ben Miller