将脚本和样式放入多个CPT中

时间:2017-07-04 作者:Ollie

我正在尝试将几个脚本和样式表加载到我正在创建的插件中。我想将脚本加载到admin中的多个CPT中。我已经做到了这一点:

function fhaac_admin_enqueue_scripts(){
    global $pagenow, $typenow;

    if ( ($pagenow == \'post.php\' || $pagenow == \'post-new.php\') && $typenow == \'fhaac\' ){}
}
脚本正在加载到fhaac中,但没有其他内容。我不知道如何添加多个CPT。我尝试将它们添加到数组中,但没有成功。

非常感谢您的帮助。

干杯

2 个回复
最合适的回答,由SO网友:Johansson 整理而成

您可以使用一个内置函数来代替全局函数。这个get_current_screen() 函数允许您获取与当前页面关联的信息。

其返回值之一是post_type. 因此,您可以对照一组帖子类型进行检查,以查看是否有人匹配。

function fhaac_admin_enqueue_scripts(){
    $screen = get_current_screen();
    if (
        in_array( $screen->post_type, array(\'fhaac\',\'blabla\')) &&
        $screen->base == \'post\'
     ) { // Do something }
}

SO网友:Tom J Nowell

有一个非常简单的解决方法:

Load it everywhere and only run the code if the page matches

例如,在我的网站上,我有一个名为projects 在身体标签上,我有以下内容:

<body
    class="wp-admin wp-core-ui js   jetpack-connected  edit-php auto-fold admin-bar post-type-project branch-4-8 version-4-8 admin-color-fresh locale-en-us multisite customize-support sticky-menu svg">
所以我知道我的帖子列表会匹配body.edit-php, 和body.post-type-project

因此,对于CSS:

body.post-type-project.edit-php .... {
    ....
}
我可以在javascript中执行同样的检查,无论是使用jQuery

结束

相关推荐