web-dev-qa-db-ja.com

ページに埋め込みがある場合にのみスクリプトをエンキューする

OEmbeddedのコンテンツにいくつかのスタイルを追加するスクリプトがあります。現時点ではすべてのページで実行されています。ページにOEmbedがある場合にのみスクリプトをエンキューする方法を誰かが知っているかどうか私は思っていました。

Googleがトピックについて何も返さないため、表示するコードがありません。

3
danbrown

考慮すべき最初のことは、wp_enqueue_scriptsアクションフックはページ/投稿コンテンツのフィルタが実行される前に起動するということです。

そこで私はwpアクションフックに関数を追加し、そこでコンテンツをテストします。

add_action( 'wp', 'your_oembed_test_function' );
function your_oembed_test_function(){
    //earliest reliable hook to get $post variable
    global $post;

    //do your tests with $post content

    if( $oembed_exists_results ) wp_enqueue_script( $your_handle );

}

WPはwp_enqueue_scriptsの前に起動されるので、あなたがあなたが内容の中で見つけたどの埋め込みに基づいてあなたが見せたいスクリプト/スタイルを選ぶことができるでしょう。

2
Douglas.Sesar