为什么我的调用javascript文件的函数在wordpress插件中不起作用?

问题描述 投票:0回答:1

我正在尝试在 /admin/ 文件夹内的 php 文件中添加一个函数,以调用特定的 javascript 文件 roomzeroadmin.js。 我尝试过使用:

function roomzero_load_admin_scripts() {
    // Enqueue admin.js for the admin dashboard
    wp_enqueue_script(
        'roomzero-admin-script', // Unique handle
        plugin_dir_url(__FILE__) . 'js/roomzeroadmin.js', // Path to admin.js
        array('jquery'), // Dependencies (if any)
        '1.0.0', // Version
        true // Load in footer
    );
}
add_action('admin_enqueue_scripts', 'roomzero_load_admin_scripts');

但它似乎不起作用。我也试过了

add_action('wp_enqueue_scripts','roomzero_js');

function roomzero_js() {
    wp_enqueue_script( 'roomzero-test-js', plugins_url( '/js/roomzero.js', __FILE__ ));
}

但这也行不通。关于如何完成这项工作有什么建议吗?

javascript php wordpress plugins
1个回答
0
投票

尝试帮助解决一些问题。

你是如何运行 JavaScript 的?通过特定于页面的代码片段、通过您的函数还是通过插件?

此外,您可能已经这样做了,只需仔细检查一下,因为您在 /admin/ 文件夹中工作,所以确保您专门针对管理页面并在那里加载脚本。

另外,请仔细检查以确保您的文件路径实际上指向 roomzeroadmin.js 的正确位置。

如果您的 roomzeroadmin.js 文件位于 /wp-content/plugins/your-plugin/js/roomzeroadmin.js,plugin_dir_url(FILE) 将给出正确的基本 URL,所以您应该没问题。但是,请仔细检查结构。

确保 array('jquery') 依赖项正确。你特别需要jquery吗?

这里有一段干净的代码可以用来测试:

function roomzero_load_admin_scripts($hook) {
    // Check if we're on the admin pages (optional: you can specify exact pages by checking the $hook)
    if (is_admin()) {
        // Enqueue the roomzeroadmin.js file
        wp_enqueue_script(
            'roomzero-admin-script', // Unique handle for the script
            plugin_dir_url(__FILE__) . 'js/roomzeroadmin.js', // Path to the JS file
            array('jquery'), // Dependencies (jQuery is common in the admin area)
            '1.0.0', // Version of your script
            true // Load in the footer (set to false if you want it in the header)
        );
    }
}

add_action('admin_enqueue_scripts', 'roomzero_load_admin_scripts');

祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.