我有一个博客(使用 twentyfifteen
子主题)和一个页面,我必须禁用WordPress添加的所有样式,脚本和元标签,除了由 all in One Seo Pack插件添加的元标签。
我是Wordpress的新手,我试着在这个页面的模板中使用define('WP_USE_THEMES', false)
,没有任何事情发生(视觉上)。我知道有像wp_dequeue_style()
这样的函数,但是我无法在functions.php中检查当前页面是否为上述页面
实现这一目标的最佳方法是什么?
有两个函数
-
style_dequeue_function()
,它将删除所有样式。 -
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');
}
}