如何使用 wp_dequeue 来阻止脚本在 WordPress 中加载: ...或者这里还有更多选项,我们可以使用。
\n背景:
\n首先:我们正在谈论这个网站:https://www.job-starter.com \n这个网站运行:wordpress 6.3.1\n插件:wp-job-manager\n主题:jobify-theme by astoundify.com -请参阅https://astoundify.com/products/jobify/
\n注意:此主题使用 Google 地图 - 我不想在我的网站上运行此主题 - 因为我不想因 API 调用而遇到法律问题:
\n(主题的)开发人员说 - 我网站上的 Google_Map_API 如下:
\njs?v=3&libraries=geometry%2Cplaces&language=en&ver=6.3. \ncommon.js \nutil.js\nRun Code Online (Sandbox Code Playgroud)\n主题作者正在加载 Google Maps API,但网站上并未使用它,因此我想在子主题的functions.php 中将其出列。他们不提供在主题设置中简单地禁用它的选项。\n问题:有人介意帮我提供一些关于我们这里的选项的想法吗:
\n所以这里有很多选项: wp_dequeue 代码
\n问题:
\n在父主题中将其注释掉或在子主题中将其出列在技术上不是更有效吗?我知道修改父主题代码的固有问题。\n关于选项...
\n我们可以与
\n(\'bazien-google-maps\', \'https://maps.googleapis.com/maps/api/js?kewp_enqueue_script(\'bazien-google-maps\', \'https://maps.googleapis.com/maps/api/js?ke\nRun Code Online (Sandbox Code Playgroud)\n但是等等: 这不是最好的 WordPress 方式吗,我们需要在子主题中取消注册它。为此,请使用以下命令:
\nwp_deregister_script( \'bazien-google-maps\' );\n \nRun Code Online (Sandbox Code Playgroud)\n结论:在父主题中对其进行注释会更有效,因为这样我们就不会加载脚本来“卸载”它。但是,有一天可能会出现更新,因此在子主题中禁用它会更安全。
\n我不确定以上想法和思考是否正确。你怎么说...?
\n顺便提一句:
\n\n\n停止脚本的选项:此处 Google-Maps API:wp_dequeue 或 wp 取消注册脚本
\n
正确的!
\n顺便说一句:如果我们选择选项 2
\nb. 在子主题中将其出列
\n也就是说 - 我网站上的 Google_Map_API 如下
\njs?v=3&libraries=geometry%2Cplaces&language=en&ver=6.3.\ncommon.js \nutil.js\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\x8b
\n因此functions.php中的代码可能像这样
\n\xe2\x80\x8b
\nfunction dequeue_google_maps_scripts() {\nwp_dequeue_script(\'common.js\');\nwp_dequeue_script(\'util.js\');\nwp_dequeue_script(\'js?v=3&libraries=geometry%2Cplaces&language=en&ver=6.3.2\');\n\n} add\\_action(\'wp\\_enqueue\\_scripts\', \'dequeue\\_google\\_maps\\_scripts\', 100);\nRun Code Online (Sandbox Code Playgroud)\n但这不起作用;我的页面上仍然有 Google-Map-API 调用。\n您对这个解决方案有何看法..!?
\n更新:
\n已经应用了代码 - 并尝试使用显示详细信息的工具加载网站 - 但是是的:可能我必须删除cookie - 首先..看看结果
\n\n由于您正在使用的主题是“高级主题”,我不能购买它只是为了调试它,所以我无法完全重现您的问题,但经过几年的使用这些场景,并有为了自己做出这些决定并亲眼看到结果,如果我是你,我会选择选项“b”!
选项:
A。可行但不推荐(由于您在问题中提到的所有原因)
b。这将是我最好的选择!
C。如果您选择“b”,则可行但不必要
d。也可行,但如果您选择“b”则不必要
“但这行不通”
您收到任何错误/警告吗?您查看过您的日志文件吗?
笔记:
为了wp_dequeue_script正确使用:
wp_dequeue_script函数,否则它将无法工作。“句柄”可能与脚本名称不同,也可能不同。您需要查看源代码以检查“handle”是否与脚本名称相同。找到“句柄”的最简单方法是查看浏览器上的页面源代码。(完全加载后,右键单击页面上的任意位置,然后单击“查看页面源代码”。在页面源代码中搜索您的脚本并获取“句柄”。这是这些脚本的第一部分)function.php子主题文件中使用反斜杠转义动作挂钩!wp_dequeue_script由于“浏览器缓存”,第一次运行它时无法工作!因此,如果您正确执行了所有操作并运行它并发现它不起作用,那么请确保通过“硬重新加载”页面或使用浏览器来清除浏览器缓存developer tools > network tab。例如:
add_action( "wp_enqueue_scripts", "your_theme_dequeue_function", 999 );
function your_theme_dequeue_function()
{
wp_dequeue_script( "REPLACE_THIS_WITH_HANDLE_OF_SCRIPT_1" );
wp_dequeue_script( "REPLACE_THIS_WITH_HANDLE_OF_SCRIPT_2" );
wp_dequeue_script( "REPLACE_THIS_WITH_HANDLE_OF_SCRIPT_3" );
}
Run Code Online (Sandbox Code Playgroud)
由于您的主题是“高级主题”,我无法在我这边重现您的问题,所以这就是我此时所能想到的。如果你能让它工作,请告诉我!
您发给我的主题源代码需要我登录第三方网站才能激活主题。我在该第三方网站上没有帐户,也没有时间完成该过程!
但是,我快速浏览了源代码,发现了几个负责将“google 地图”api 排队的脚本“句柄” 。functions.php这是我建议在您的子主题文件中使用的代码。
add_action("wp_enqueue_scripts", "your_theme_dequeue_function", 999);
function your_theme_dequeue_function()
{
wp_dequeue_script("gjm-map");
wp_dequeue_script("gjm-google-maps");
wp_dequeue_script("google-maps");
wp_dequeue_script("jobify-app-map");
wp_dequeue_script("gjm-info-bubble");
wp_dequeue_script("gjm-marker-clusterer");
wp_dequeue_script("gjm-marker-spiderfier");
}
Run Code Online (Sandbox Code Playgroud)
从理论上讲,它应该可以工作,并使页面上的所有这些脚本出列,但由于此特定主题的激活过程,我无法对其进行测试。