カスタム投稿の追加/編集ページでスクリプトをキューに入れる方法は?


23

「レシピ」と呼ばれる自分が作成したカスタム投稿タイプを誰かが追加または編集している場合にのみ、JSスクリプトをキューに登録しようとしています。現在、これを行うとスクリプトは正常に動作します:

if (is_admin()){
    wp_enqueue_script( 'my-script' );
}

しかし、これはすべての管理ページにロードされます。関数にフックする必要があると仮定していますが、それがどうなるかはわかりません。

前もって感謝します!


将来の使用のために、同様の質問に私がより簡単な方法であると感じたものが答えられました:wordpress.stackexchange.com/q/34894/93169
Frits

回答:


43

このようにすることができます(あなたのに入れてくださいfunctions.php):

function add_admin_scripts( $hook ) {

    global $post;

    if ( $hook == 'post-new.php' || $hook == 'post.php' ) {
        if ( 'recipes' === $post->post_type ) {     
            wp_enqueue_script(  'myscript', get_stylesheet_directory_uri().'/js/myscript.js' );
        }
    }
}
add_action( 'admin_enqueue_scripts', 'add_admin_scripts', 10, 1 );

この関数を使用してスタイルをキューに入れることもできますか?
シシル

1
@Sisir "admin_print_styles-{$page}"フックを使用します。$page完全なadd_(sub)menu_page()コードを保持し、を使用してページをターゲットにするために使用でき@see wp_enqueue_style()ます。
カイザー

これを行うための最新の方法:wordpress.stackexchange.com/a/34897/93169wordpressの機能変更のおかげで少し簡単になりました...)
Frits

-2

そのためのフックがあり、使用するのは非常に簡単です。実装例については、このチュートリアルを参照してください

編集

ジャスティンは、チュートリアルをDevPressから個人サイトに移動しました。これが、チュートリアルの更新されたリンクです


リストされたページはなくなりました。これがWaybackマシンのミラー/アーカイブです。
ロバートK

ありがとう。現在のリンクで回答を更新しました。
チップベネット

3
なぜ...ここに解決策を投稿してソースとしてチュートリアルをリンクしない
クリスティン・クーパー

-3

Rootstheme(Twitter Bootstrapに基づいています)には、githubにあるroots_scripts関数に見られるように、ページ/投稿タイプに応じてスクリプトをロードする非常にエレガントな方法があります。

基本的に、すべてのスクリプトとスタイルを登録してから、wp_enqueue_scriptまたはwp_enqueue_styleステートメントをラップする条件ステートメントを作成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.