仅在有人添加或编辑我创建的称为“食谱”的自定义帖子类型时,我才尝试加入JS脚本。目前,当我执行此操作时,脚本可以正常运行:

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


但这会将其加载到每个管理页面中,我假设我需要将其连接到函数,但是不知道会是什么。

预先感谢!

评论

为了将来使用,我觉得更简单的方法回答了一个类似的问题:wordpress.stackexchange.com/q/34894/93169

#1 楼

您可以这样操作(放入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 );


评论


我也可以使用此功能加入样式吗?

–西西尔
11年11月14日在11:16

@Sisir使用“ admin_print_styles-{$ page}”钩子。 $ page可以保存完整的add_(sub)menu_page()代码,并在使用@see wp_enqueue_style()时用于定位目标页面。

– kaiser
2011年11月14日在18:04

一种更新的方法:wordpress.stackexchange.com/a/34897/93169(由于wordpress的功能更改,它也碰巧容易了一点……)

–碎料
16年4月29日在6:38

#2 楼

有一个钩子,使用起来非常简单。请参阅本教程以获取示例实现。

编辑

Justin将他的教程从DevPress移到了他的个人站点。这是本教程的更新链接。

评论


列出的页面不见了。这是Wayback机器上的镜像/存档。

– Robert K
2012年3月8日在21:42

感谢那。我已经用当前链接更新了答案。

–芯片Bennett
2012年8月8日22:04

为什么不在此处发布解决方案,并将教程链接为源代码...

–克里斯汀·库珀♦
2014年11月8日在16:33

#3 楼

Rootstheme(基于Twitter Bootstrap)具有一种非常优雅的方式来加载脚本,具体取决于页面/帖子类型,如在roots_scripts函数中所见(可在github上找到)。

基本注册所有脚本和样式然后具有条件语句,这些条件语句包装了wp_enqueue_script或wp_enqueue_style语句。