禁用Wordpress中所有样式,脚本和元标签的最佳方法


Best way to disable all styles, scripts and meta tags in Wordpress

我有一个博客(使用 twentyfifteen 子主题)和一个页面,我必须禁用WordPress添加的所有样式,脚本和元标签,除了由 all in One Seo Pack插件添加的元标签。

我是Wordpress的新手,我试着在这个页面的模板中使用define('WP_USE_THEMES', false),没有任何事情发生(视觉上)。我知道有像wp_dequeue_style()这样的函数,但是我无法在functions.php中检查当前页面是否为上述页面

实现这一目标的最佳方法是什么?

有两个函数

  1. style_dequeue_function(),它将删除所有样式。
  2. script_dequeue_function(),它将删除所有脚本。

所有你需要提供页段或模板名称。

$pageSlug,你想隐藏WordPress样式和脚本。

$Template_Name按模板名

remove_action将删除WordPress生成器标签。

remove_action('wp_head', 'wp_generator');

注意:它只会显示deque样式或由WP队列功能添加的脚本。

例如:

wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
wp_enqueue_script( 'site' );
wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
wp_enqueue_style( 'screen' );

function style_dequeue_function()
{
    global $wp_styles;
    $array = array();
    // Runs through the queue styles
    foreach ($wp_styles->queue as $handle) :
        $array[] = $handle;
    endforeach;
    wp_dequeue_style($array);
    wp_deregister_style($array);
}

function script_dequeue_function()
{
    global $wp_scripts;
    $array = array();
    // Runs through the queue scripts
    foreach ($wp_scripts->queue as $handle) :
        $array[] = $handle;
    endforeach;
    wp_dequeue_script($array);
    wp_dequeue_script($array);
}

add_action( 'wp_head', 'HideWpGeneratorAndScripts' );
function HideWpGeneratorAndScripts()
{
    $pageSlug = "Your Page Slug here.";
    $Template_Name = "Your Custom Template Name here.";
    if(is_page($pageSlug)) {
        add_action('wp_enqueue_scripts', 'style_dequeue_function');
        add_action('wp_enqueue_scripts', 'script_dequeue_function');
        remove_action('wp_head', 'wp_generator');
    }
    else if(is_page_template($Template_Name)) {
        add_action('wp_enqueue_scripts', 'style_dequeue_function');
        add_action('wp_enqueue_scripts', 'script_dequeue_function');
        remove_action('wp_head', 'wp_generator');
    }
}