我什么都试过了。我甚至删除了函数中的所有内容。php创建了一个全新的文件:
function wpdocs_dequeue_script() {
if (is_singular()) {
wp_dequeue_script( \'gdrts-rating\' );
}
}
add_action( \'wp_print_scripts\', \'wpdocs_dequeue_script\', 100 );
想法是从我的自定义帖子类型中删除一些Javascript文件。我认为我做错了什么,所以我第一次尝试了is\\u page(),甚至是is\\u home(),但即使这样对我也不起作用。似乎代码没有被触发。
This is my plugin:
wp_enqueue_script(\'gdrts-events\', $this->file(\'js\', \'events\'), array(), gdrts_settings()->file_version(), false);
wp_enqueue_script(\'gdrts-rating\', $this->file(\'js\', \'rating\'), $depend_js, gdrts_settings()->file_version(), true);
所以,我也试着这样做:
function wpdocs_dequeue_script() {
wp_dequeue_script( \'gdrts-rating\' );
}
add_action( \'wp_enqueue_scripts\', \'wpdocs_dequeue_script\', 100 );
不工作!
SO网友:Sam
请注意,以下内容是通过自定义插件完成的,而不是在函数文件中,因为大多数主题在更新时都会覆盖函数文件。
下面的内容经过测试,可以对脚本进行解列。我添加了一些代码,您可以使用这些代码来测试文件在删除之前是否已加载,如果您只希望在is\\U singular()中的该帖子类型上卸载,我也会使用您的自定义帖子名称。
<?php
/*
Plugin Name: Remove_script_Stack_353322
Plugin URI: www.mywebsite.com
Description: Remove a script when needed
Version: 1.0
Author: Me
Author URI: www.mywebsite.com
*/
/**
* Enqueue script.
*/
function my_scripts_method() {
//Change your plugin url/name
wp_enqueue_script( \'gdrts-rating\', plugins_url( \'test.js\' , __FILE__ ));
}
add_action( \'wp_enqueue_scripts\', \'my_scripts_method\' );
function wpdocs_dequeue_script()
{
// Lets check if gdrts-rating is loaded
$handle = \'gdrts-rating\';
$list = \'enqueued\';
if (wp_script_is( $handle, $list ))
{
//echo \'Loaded --------------------------------------------------------------------->\';
// Custom post type so use the name in -> is_singular(\'custom_post_name\') you can have more post types such as is_singular(\'custom_post_name\', \'custom_post_2\')
if (is_singular())
{
// Unload the plugin
wp_dequeue_script( \'gdrts-rating\' );
}
}
else
{
// Not loaded do nothing
//echo \'Not loaded --------------------------------------------------------------------->\';
}
}
add_action( \'wp_print_scripts\', \'wpdocs_dequeue_script\', 10 );