我怎样才能在我的脚本排入队列后更改它?

时间:2018-04-06 作者:mobilemed

写我的第一个插件,尽量让它简单。我在javascript中加入了过于简单的函数,以便让我知道它就在那里。之后,我更改了javascript中的方法。WP无法识别javascript是否已更改。看起来是这样的:

function registerjs()
{
    wp_register_script(\'pcjavascript\', plugins_url(\'PerformantCalendar.js\', __FILE__));
    //wp_dequeue_script(\'pcjavascript\');
    //echo "ichi";
    wp_enqueue_script(\'pcjavascript\');
    echo "ni";
}

add_action(\'wp_enqueue_scripts\', \'registerjs\');
javascript文件如下所示:

function monthNext()
{
    alert("In the haunted javascript file");
}

function monthPrev()
{
    alert("This also works");
}
现在,如果我更改警报框中的消息,它仍然会在第一条消息之前发出警报。我已经尝试退出脚本队列,停用并重新激活插件。我错过了一些东西。有人能帮忙吗?

1 个回复
最合适的回答,由SO网友:Myles 整理而成

正在缓存您的JS。在开发中,只需清空缓存即可。但对于生产代码,需要注意的是,wp\\u enqueue\\u scripts()接受一个版本参数,该参数允许您设置脚本版本号,然后将其作为查询字符串添加到URL中,以用于缓存破坏。(请注意,wp\\u register\\u script函数实际上内置于wp\\u enqueue\\u script函数中,因此您只需要一个。)

function registerjs()
{
    wp_enqueue_script(\'pcjavascript\', plugin_dir_url(__FILE__) . \'PerformantCalendar.js\', array(), \'1.0\', false);
}

add_action(\'wp_enqueue_scripts\', \'registerjs\');
这将在页面源中的url末尾附加“?ver=1.0”。然后,在更新之后。js文件,更改版本号:

function registerjs()
{
    wp_enqueue_script(\'pcjavascript\', plugin_dir_url(__FILE__) . \'PerformantCalendar.js\', array(), \'1.1\', false);
}

add_action(\'wp_enqueue_scripts\', \'registerjs\');
这将附加“?ver=1.1”,使浏览器将其视为不同的文件,并将从服务器请求它,而不是使用缓存副本。可以找到有关wp\\u enqueue\\u scripts()的更多信息here.

结束

相关推荐

未与其余资产一起排队的JavaScript资产

我正在从事一个项目,该项目使用子主题的函数文件将样式表和单个javascript文件排队。这两个资源很好地排队。然而,当我添加一个新的已编译javascript文件时,它似乎根本不会排在原来的两个脚本之后,好像它完全忽略了我对函数的添加。php文件。知道为什么吗? <?php add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles_and_scripts\' ); function theme_enq