我正在创建一个Wordpress插件。
我已经为此创建了基础,并且所有内容都已正确设置。
我已经尝试查看this和this,看看我是否可以从页眉和页脚请求并获取所有脚本(.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_header
和get_footer
加载它(如果这些是正确的函数)
答案 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_Styles和WP_Scripts的类参考。