javascript - 在 WordPress 中有条件地加载脚本

标签 javascript php wordpress

我可以通过在我的子主题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/

相关文章:

javascript - 如何让 jquery 可排序以在单击按钮时运行函数

javascript - 如何让禁用的按钮在单击时执行某些操作? (JS)

php - 如何将错误的查询字符串重定向到自定义错误页面+ 404 状态

php - 在 mysql 中更新超过百万条记录的最佳方法

ajax - WordPress 插件 ajax 由于 admin_init 钩子(Hook)而无法工作

c# - 使用 WP Rest API Request C# 添加 SEO

javascript - 在 JavaScript 中将值传递给函数

javascript - 使用 '$' 迭代对象属性

php - mysql 插入数据库没有值

php - 在 Woocommerce 3 中向客户发送已取消和失败的订单电子邮件