如何获取.js和.css文件并替换它们

时间:2015-08-04 14:08:23

标签: wordpress wordpress-plugin

我正在创建一个Wordpress插件。

我已经为此创建了基础,并且所有内容都已正确设置。

我已经尝试查看thisthis,看看我是否可以从页眉和页脚请求并获取所有脚本(.js文件)。

我认为这是最好的功能,但结果并没有发生。

我基本上想要获取 JS和CSS文件并替换为另一个字符串。

所以让我们说这是我的页面:

<!DOCTYPE html>
<html>
<head>
    <title>Page</title>
    <link rel="stylesheet" href="http://www.example.com/mycss.css" />
</head>
<body>

<script type="text/javascript" src="http://www.example.com/myscript.js"></script>
<script type="text/javascript" src="http://www.example.com/another_script.js"></script>
</body>
</html>

我的函数必须查找.css和.js文件,并用其他东西替换字符串。结果将是:

<!DOCTYPE html>
<html>
<head>
    <title>Page</title>
    <mytag>Here was contained a CSS from http://www.example.com/mycss.css</mytag>
</head>
<body>

<mytag>Here were contained 2 JS from http://www.example.com/myscript.js and http://www.example.com/another_script.js</mytag>
</body>
</html>

修改 我实际上必须得到这些文件的名称和路径。

我想我可以使用正则表达式,但我不知道如何使用get_headerget_footer加载它(如果这些是正确的函数)

2 个答案:

答案 0 :(得分:3)

它更有意义,而不是在从get_header()get_footer()函数接收后删除相关标记,以使所有样式和/或脚本出列,以便它们永远不会在那里打印出来的地方。

您可以通过回顾$wp_styles / $wp_scripts个对象来获取该文件的路径。 registered财产。然后,您可以使用basename()继续获取文件名:

function dequeue_all_styles() {
    global $wp_styles;

    foreach( $wp_styles->queue as $handle ){
        wp_dequeue_style($handle);
        $src = $wp_styles->registered[$handle]->src;
        $filename = basename($src);
    }
}
add_action( 'wp_print_styles', 'dequeue_all_styles', 100 );

function dequeue_all_scripts() {
    global $wp_scripts;

    foreach( $wp_scripts->queue as $handle ){
        wp_dequeue_script($handle);
        $src = $wp_scripts->registered[$handle]->src;
        $filename = basename($src);
    }
}
add_action( 'wp_print_scripts', 'dequeue_all_scripts', 100 );

如果您要将其他样式和脚本放在其位置,只需使用wp_enqueue_style()wp_enqueue_script()

答案 1 :(得分:1)

您可以使用$wp_scripts$wp_styles个全局变量来访问排队的脚本和样式。

有关可用的方法和属性,请参阅WP_StylesWP_Scripts的类参考。