是否可以在触发之前更改已注册的样式或脚本的属性?

时间:2010-12-04 作者:t31os

我想在加载之前修改注册样式(或脚本-同样适用)的属性。

现在,我正试图在注册样式进入队列之前对其进行修改,以便将其指向另一个文件(即更改src 财产,可能是其他人的财产)。寻找一些关于在何处连接和修改$wp_styles 对象,以便排队正常启动,但对注册样式的属性进行更改。

我正在制作一个管理配色方案,我想如果我可以重写/调整现有的排队,而不是在每个页面上添加一个额外的请求(即colors-fresh.css+我的样式表-我宁愿有一个请求,为什么只包含原始样式表以在另一个页面中重新定义每个样式),那就太棒了。。。

取消注册样式并注册我自己的样式?-然后,我必须注销这两种颜色方案(经典/新鲜),因为我更喜欢在队列触发之前简单地挂钩并调整styles对象。

我很确定这是有可能的,但只是因为我现在没有足够的脑力去思考这个问题。。(连接时间过长)。。

欢迎任何建议……;)

2 个回复
最合适的回答,由SO网友:t31os 整理而成

修改已注册样式的路径我想调整一个WordPress管理样式表的路径,这样我可以减少请求,而且因为包含两个样式表没有什么意义,当我调用的样式表重新定义WordPress排队的样式表中的所有样式时。

其基本思想是将现有样式重新指向不同的样式表,两个挂钩是合适的

  • style_loader_src
  • style_loader_tag.

    我决定使用style_loader_src 切换颜色样式表路径(src),因为这正是我所需要的,调整路径并了解当前句柄,因此非常适合我的需要。

    更改颜色样式表路径的示例过滤器

    检查句柄是否为颜色样式表,并在其为时更新路径。

    function switch_stylesheet_src( $src, $handle ) {
        if( \'colors\' == $handle )
            $src = plugins_url( \'my-colors.css\', __FILE__ );
        return $src;
    }
    add_filter( \'style_loader_src\', \'switch_stylesheet_src\', 10, 2 );
    
    上面的过滤器基本上会采用现有的颜色样式表输出,例如。

    <link rel=\'stylesheet\' id=\'colors-css\' href=\'http://example.com/wp-admin/css/colors-fresh.css?ver=20100610\' type=\'text/css\' media=\'all\' />
    
    并将其转换为。。

    <link rel=\'stylesheet\' id=\'colors-css\' href=\'http://example.com/wp-content/plugins/my-plugin/my-colors.css\' type=\'text/css\' media=\'all\' />
    
    我发现这种方法比将一个额外的样式表排队更可取,它减少了一个请求,而且无论你在做什么样式,都需要更少的CSS覆盖,因为你实际上是在劫持这个请求来加载你自己的样式表。

SO网友:sorich87

您可以使用过滤器wp_admin_css_uri 在返回管理css文件uri的同名函数中。例如。:

function custom_modify_styles( $_file, $file ) {
    if( \'style\' == $file ) // $file = css filename without extension
        $_file = \'my/new/path/to/style.css\';
    return $_file;
}
add_action( \'wp_admin_css_uri\', \'custom_modify_styles\', 10, 2 );

结束

相关推荐

在没有CSS的情况下从管理菜单中删除不必要的文本

我正在寻找一种方法来删除默认worpdress元数据库中所有不必要的文本。最好我想确保内容不仅通过CSS隐藏,而且实际上从HTML中删除,这样它甚至不会显示在源代码中。我想删除的领域包括:单击右上角的“帮助”按钮并关联DIV/HTML/text时,我想删除与正在使用的主题和wordpress版本相关的文本以及“更改主题”按钮在底部的“页面属性”元框中,有文本“需要帮助?使用屏幕右上角的帮助选项卡”我希望删除此文本,在“摘录元数据库”下有一个文本,我希望删除任何其他文本,您可能也知道如何删除以清理wordp