从“十二十二”主题中删除开放无题


16

我正在为Twenty Twelve v1.0创建一个子主题,并且想要删除Open Sans字体。

Open Sans被添加到Twenty Twelve的functions.php中:

wp_enqueue_style( 'twentytwelve-fonts', add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" ), array(), null );

我尝试在childtheme的functions.php中注销/退出样式表(请参见下面的示例),但没有任何效果:

function example_scripts_styles() {     
    wp_deregister_style( 'twentytwelve-fonts' );    
    wp_dequeue_style( 'twentytwelve-fonts' );
}
add_action( 'wp_enqueue_scripts', 'example_scripts_styles' );

有什么想法可以删除此文件吗?谢谢!

Answers:


12

这里找到答案:

脚本出队调用应添加到wp_print_scripts操作hook(..)。这是因为脚本通常排队在wp_enqueue_script钩子上,这在wp_head进程的早期发生。wp_print_scripts挂钩恰好在打印脚本之前发生,因此是该过程的最新版本。(奥托)

按照相同的逻辑,我们可以wp_print_styles删除Open Sans字体:

function remove_open_sans() {
   wp_dequeue_style( 'twentytwelve-fonts' );
}
add_action('wp_print_styles','remove_open_sans');

这成功了。


6

在WP 3.8+上,我使用thetrickster的要点从我的前端样式中成功删除了“ Open Sans” :

<?php
// Remove Open Sans that WP adds from frontend
if (!function_exists('remove_wp_open_sans')) :
    function remove_wp_open_sans() {
        wp_deregister_style( 'open-sans' );
        wp_register_style( 'open-sans', false );
    }
    add_action('wp_enqueue_scripts', 'remove_wp_open_sans');

    // Uncomment below to remove from admin
    // add_action('admin_enqueue_scripts', 'remove_wp_open_sans');
endif;
?>

“ Open Sans”可以依赖于插件。


甚至对我来说,这也适用于另一个主题。刚把它放在我的孩子主题函数中.....我对此感到非常高兴。我在中国,因此不必要的Google通话不是一个小优化-我的页面挂了几分钟,等待对Google的通话消失。这对我来说是巨大的:-D
Mike M

哦,是的,我在一个插件中标识了它(一次停用一个插件)== Jetpack .....巨大,因此很难找到某些东西,更不用说修改了。谢谢,WP
Mike M

4

在Twenty Twelve v1.1的functions.php中,注释说明了如何从wp_enqueue_scripts挂钩中删除样式表:

function mytheme_dequeue_fonts() {
         wp_dequeue_style( 'twentytwelve-fonts' );
      }

add_action( 'wp_enqueue_scripts', 'mytheme_dequeue_fonts', 11 );

您尝试没有工作缺失的优先级参数add_action()。父主题以默认优先级10入队样式,因此子主题必须以优先级11出队。


3

您会发现WordPress本身也加载了Open Sans(至少是3.8版)。实际上,它为我加载了三次San Sans:一次是WP管理员,一次是TinyMCE编辑器,另一次是页面。

如果您的目标是完全删除Open Sans,则必须破解WordPress本身(或使用较旧的版本)。

我自己的用于删除Open Sans的代码(至少在大多数情况下,在没有登录用户的情况下)通常是我的主题functions.php

add_action('wp_enqueue_scripts','ays_setup',9);

函数ays_setup(){

    / * TinyMCE中没有Open Sans字体* /
    remove_filter('mce_css','twentytwelve_mce_css');

    / *页面上没有Open Sans字体* /
    remove_action('wp_enqueue_scripts','twentytwelve_scripts_styles');
    add_action('wp_enqueue_scripts','ays_scripts_styles');
}

函数ays_scripts_styles(){
    全局$ wp_styles;

    / *
     *将JavaScript添加到带有注释表单的页面以支持
     *具有主题注释的网站(使用中)。
     * /
    如果(is_singular()&& comments_open()&& get_option('thread_comments'))
        wp_enqueue_script('comment-reply');

    //添加用于处理导航菜单隐藏和显示行为的JavaScript。
    wp_enqueue_script('twentytwelve-navigation',get_template_directory_uri()。'/js/navigation.js',array(),'1.0',true);

    //加载我们的主样式表。
    wp_enqueue_style('twentytwelve-style',get_stylesheet_uri());

    //加载Internet Explorer特定的样式表。
    wp_enqueue_style('twentytwelve-ie',get_template_directory_uri()。'/css/ie.css',array('twentytwelve-style'),'20121010');
    $ wp_styles-> add_data('twentytwelve-ie','conditional','lt IE 9');
}

twentytwelve_scripts_stylestwentytwelve_scripts_styles除了加载Open Sans之外,其他所有内容都包含在内。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.