我正在创建一个 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
加载它(如果这些是正确的函数)
最佳答案
与从 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()
即可。
关于wordpress - 如何获取 .js 和 .css 文件并替换它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31811583/