在插件页面上包含脚本和样式

时间:2014-08-13 16:31:39

标签: wordpress

$mypage = add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position )

add_action( "admin_print_scripts-$mypage", 'myscript' );
add_action( "admin_print_styles-$mypage", ' mystyle' );


function myscript() {
    wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
}

function mystyle(){
  wp_enqueue_style( $handle, $src, $deps, $ver, $media ); 
}

这就是我现在的做法,但是在钩子的参考页面上:

admin_print_scripts - http://codex.wordpress.org/Plugin_API/Action_Reference/admin_print_scripts admin_print_styles - http://codex.wordpress.org/Plugin_API/Action_Reference/admin_print_styles

请注意,此钩子不应用于在管理页面上排队样式或脚本,而是在wp_enqueue_script和wp_enqueue_style的参考页面上,它们有一些示例,其中这些钩子用于排列样式或脚本。

所以现在我很困惑,有人可以向我解释一下最好做什么吗?

1 个答案:

答案 0 :(得分:0)

您只需要对代码进行一些轻微的调整,就应该完全设置好。

引用告诉你正确的事情,将脚本排入队列是正确的方法,你只是没有正确地调用它。

试试这个:

add_action( "admin_enqueue_scripts", 'myscript' );
add_action( "admin_enqueue_scripts", ' mystyle' );

function myscript() {
    if('edit.php' != $hook)
    {
        wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
    }
}

function mystyle(){
    if('edit.php' != $hook)
    {
        wp_enqueue_style( $handle, $src, $deps, $ver, $media ); 
    }
}

您可以更改IF(),以便脚本在不同的页面上运行。您还可以将两个排队呼叫加在一起,以缩短代码并使其更好地运行。

像这样:

add_action( "admin_enqueue_scripts", 'myscripts_and_styles' );

function myscripts_and_styles() {
    if('edit.php' != $hook)
    {
        wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
        wp_enqueue_style( $handle, $src, $deps, $ver, $media ); 
    }
}

希望这是有道理的