如何将排队的脚本输出到管理页面?

时间:2018-02-04 作者:Chris Thomas

我正在尝试创建自己的插件(用于学习和网站开发),但还没有找到答案。

我在stackexchange上找到了一段代码来打印句柄列表:

global $wp_scripts;
foreach( $wp_scripts; -> queue as $handle ):
echo $handle . \' | \';
endforeach;
现在,如果我想在我的网站主页上打印一个句柄列表,这就太棒了。我可以使用相同的代码在管理区域的插件页面中打印它,但它缺少两件事。1)如何打印在主页上排队的脚本(不在那里打印)和2。)我无法获取所调用脚本的url。我认为最好将此列表打印到一个数组中,但我不知道在这种情况下如何执行(在数组中循环并存储每个$句柄的值)。

我已经包括了我写的函数。

function below_the_fold_admin() {
    if ( is_admin() ) {
        echo \'<div class="wrap"><h2 style="text-align: center">Below The Fold</h2><h3>A list of your script handles.</h3><p>\';
        global $wp_scripts;
        foreach( $wp_scripts->queue as $handle) :
            echo $handle . \' | \'. $src . \'<br>\';
        endforeach;

        echo \'</p>\';
        echo \'<h3>A list of your Style Handles</h3><p>\';
        global $wp_styles;
        foreach( $wp_styles->queue as $handle) :
            echo $handle . \' | \' . $src . \'<br>\';
        endforeach;
        echo \'</p></div>\';
    }
}

1 个回复
SO网友:Frank P. Walentynowicz

为了在帖子/页面中显示注册的脚本信息,我们将使用一个短代码。对于管理员注册的脚本,我们将使用admin_footer 行动挂钩。将此代码放入插件:

if(!is_admin) {
    function fpwScripts($atts) {
        global $wp_scripts;
        $out = \'<h2>Registered Scripts</h2>\';
        foreach($wp_scripts->registered as $key => $value) {
            $out .= "<h3>{$value->handle}</h3>";
            $out .= "source = {$value->src}<br>";
            $out .= "dependencies = array(<br>";
            foreach($value->deps as $dep) {
                $out .= \'&nbsp;&nbsp;&nbsp;&nbsp;\' . "{$dep},<br>";
            }
            $out .= ")";
        }
        return $out;
    }
    add_shortcode(\'scripts\', \'fpwScripts\');
} else {
    function fpwAdminScripts() {
        global $wp_scripts;
        $out = \'<div style="margin-left:200px">\';
        $out .= \'<h2>Admin Registered Scripts</h2>\';
        foreach($wp_scripts->registered as $key => $value) {
            $out .= "<h3>{$value->handle}</h3>";
            $out .= "source = {$value->src}<br>";
            $out .= "dependencies = array(<br>";
            foreach($value->deps as $dep) {
                $out .= \'&nbsp;&nbsp;&nbsp;&nbsp;\' . "{$dep},<br>";
            }
            $out .= ")";
        }
        $out .= \'<p>&nbsp;</p><p>&nbsp;</p></div>\';
        echo $out;
    }
    add_action(\'admin_footer\', \'fpwAdminScripts\');
}
Note: 如果您决定在插件的页面上显示管理员注册的脚本,而不是使用admin\\u footer hook,只需使用fpwAdminScripts() 函数,在那里。

结束

相关推荐