php 本地WordPress/WooCommerce脚本出队

mrwjdhj3  于 2023-03-07  发布在  PHP
关注(0)|答案(1)|浏览(114)

由于性能原因,我必须大幅缩小WooCommerce商店。因此,我使用插件来选择性地停用每个页面/URL的插件。
为了找出哪些插件是活动的,我使用以下代码:

add_action( 'wp_print_scripts', 'wsds_detect_enqueued_scripts' );
function wsds_detect_enqueued_scripts() {
  global $wp_scripts;
  foreach( $wp_scripts->queue as $handle ) :
    echo $handle . ' | ';
  endforeach;
}

这样我就可以看到脚本句柄了。现在我可以在所有分类页面上禁用它们了,如下所示:

if (is_product_category()) {
         wp_dequeue_script('handle1-js');
         wp_dequeue_script('handle2-js');
         wp_dequeue_script('handle3');

现在我想有选择地删除某些WP/WC函数,比如datepicker,或者甚至是jQuery。上面的脚本没有列出WP/WC函数句柄。
有什么好办法能得到它们呢?

h6my8fg2

h6my8fg21#

function debug_print_scripts_styles() {

    $result = [];
    $result['scripts'] = [];
    $result['styles'] = [];

    // All loaded Scripts
    global $wp_scripts;
    foreach( $wp_scripts->queue as $script ) :
       $result['scripts'][] =  $wp_scripts->registered[$script]->handle . ";";
    endforeach;

    // All loaded Styles
    global $wp_styles;
    foreach( $wp_styles->queue as $style ) :
       $result['styles'][] =  $wp_styles->registered[$style]->handle . ";";
    endforeach;

    return $result;
}

add_action( 'wp_head', 'debug_enqued_script_style_list');

function debug_enqued_script_style_list() {

    $all_the_scripts_and_styles = debug_print_scripts_styles();
    echo '<pre>';
    print_r($all_the_scripts_and_styles);
    echo '</pre>';
    exit;

}

将上面的代码片段添加到活动主题functions.php中,以打印店面中的手柄列表。

相关问题