我可以通过在我的子主题functions.php文件中使用它来加载(在wordpress中排队脚本):
function my_assets() {
wp_enqueue_script( 'about', get_stylesheet_directory_uri() . '/js/about.js', array( 'jquery' ), '1.0' , true );
}
add_action( 'wp_enqueue_scripts', 'my_assets' );
加载不是问题,脚本可以工作,但是当我想有条件地将其加载到页面上时,它不适用于此代码(在同一个文件中,位于上述代码的正下方):
function deregister_about_javascript() {
if ( !is_page(490) ) {
wp_dequeue_script( 'about' );
}
}
该脚本仍然出现在所有页面上。我尝试使用页面名称,slug,我将 wp_dequeue_script 更改为 admin_dequeue_script,但没有任何效果。
值得注意的是,当我在管理中点击页面获取页面ID号时,即使我在“页面”中,地址栏中也会有“帖子”一词。 wp-admin/post.php?post=490&action=edit
哈哈,看起来很简单,我错过了什么?
谢谢
最佳答案
您可以提前返回,而不是根据特定条件将脚本排入队列,而不是执行另一个函数来使脚本出队:
function my_assets() {
if ( ! is_page( 490 ) ) {
return;
}
wp_enqueue_script( 'about', get_stylesheet_directory_uri() . '/js/about.js', array( 'jquery' ), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_assets' );
现在,wp_enqueue_script
函数仅在页面 ID 490 上被调用。
关于javascript - 在 WordPress 中有条件地加载脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40907474/