退出/取消注册脚本并将其替换为新插件

时间:2021-10-01 作者:supernaut

我想我已经读过十几篇关于退出和取消注册脚本的帖子,但在我的情况下,我还没能让它正常工作。

我的处境是:;uListing“;插件是;家庭出版社;房地产主题。AJAX搜索存在一个问题,如果您只键入一个特定的数字,然后暂停,它会冻结整个页面。我相信这取决于该单个数字所发现的结果(不同站点上出现问题的数字不同),但我能够在提供商自己的演示站点上用5个不同的数字复制问题。问题是由于发现的结果导致循环从未完成。我们可以通过一个简单的返回来避开这个循环,它可以按需要工作。

但现在我正在尝试用我自己的脚本替换他们的脚本,在另一个插件中。(这样它就不会被主题或插件更新覆盖。)

他们的插件加载脚本的方式如下:

wp_enqueue_script(\'stm-search-form-category\', ULISTING_URL . \'/assets/js/frontend/stm-search-form-category.js\', array(\'vue\'), ULISTING_VERSION, true);
我的插件尝试通过以下方式覆盖它:

function fixUlisting() {
    wp_dequeue_script( \'stm-search-form-category\' );
    wp_deregister_script( \'stm-search-form-category\' );
    wp_enqueue_script( \'stm-search-fix\', \'/wp-content/plugins/ulisting-search-fix/stm-search-fix.js\' );
}
add_action( \'wp_enqueue_scripts\', \'fixUlisting\', 100 );
我相信这些步骤的顺序是正确的(?)。我相信我正确地使用了优先级(100)和位置(true)()。我可以看到我的新脚本已加载到“网络”选项卡中。我已尝试包含原始脚本的依赖项(vue)。我曾尝试重新使用原始句柄,但根据我读到的帖子使用了不同的句柄(两者都不起作用)。我清除服务器缓存,使用不同的版本号(或空或空),包括“父”插件的原始版本号,然后每次都在新的匿名浏览器窗口中重新测试。尽管如此,原始脚本仍然控制着每个实例中的AJAX搜索结果。

我需要做什么来确保使用我的脚本而不是原始脚本?任何帮助都将不胜感激。

1 个回复
SO网友:Maulik Paddharia

请尝试以下代码-

function fixUlisting() {
    wp_deregister_script( \'stm-search-form-category\' );
    wp_dequeue_script( \'stm-search-form-category\' );
    
    wp_enqueue_script( \'stm-search-fix\', plugins_url().\'/ulisting-search-fix/stm-search-fix.js\' );
}
add_action( \'wp_enqueue_scripts\', \'fixUlisting\', 100 );

相关推荐

如何从JavaScript生成COOKIEHASH

首要问题是如何获取PHP变量的内容:COOKIEHASH 在柏树测试中。我正在为WordPress编写一些Cypress测试,为了设置cookiesto log in a user in WordPress using Cypress, 那么我需要COOKIEHASH-变量对于那些不熟悉COOKIEHASH, 转到WordPress安装并将此代码放入任何位置:echo \'<pre>\'; print_r(COOKIEHASH); echo \'</pre>\';&