我使用 Elementor 来构建我的网站,并且有很多我没有使用的功能,但是在我的网站的每个页面上都加载了很多功能。所以我决定将我没有在我的子主题的 functions.php 中使用的 css 文件出列,并将我只部分使用的 css 文件出列,用文件的“清理”版本替换它们。
这就是我想要开始做的:
function adg_dequeue_unnecessary_files() {
wp_dequeue_style( 'elementor-frontend' ); // remove Elementor's custom-frontend.min.css
wp_deregister_style( 'elementor-frontend' );
wp_register_style( 'new-elementor-frontend-css', get_stylesheet_directory_uri() . '/custom-frontend.min.css' ); // Purified replacement for Elementor's custom-frontend.min.css
wp_enqueue_style( 'new-elementor-frontend-css' );
}
add_action( 'wp_enqueue_scripts', 'adg_dequeue_unnecessary_files' );
但是,虽然我的功能的第二部分很好地添加了我的新自定义 css 文件,但第一部分删除了几乎 10 个其他 Elementor 的 css 文件以及我真正想要出列的文件。
这是要出列的文件列表:
custom-frontend.min.css
post-1501.css(这是我在进行这些更改时正在查看的页面的 css 文件)
前端 legacy.min.css
post-1396.css(一些全局 Elementor 的 css)
post-3556.css(这个和下面的 5 是我在我的网站上使用的插件的模板)
post-4473.css
post-5653.css
post-3489.css
post-3464.css
post-3458.css
我猜它与处理程序 'elementor-frontend' 不正确有关。custom-frontend.min.css 文件在 HTML 代码的链接标记中有 'elementor-frontend-css' ID,所以我从那里猜测处理程序。
有谁知道我怎么能出队只自定义 frontend.min.css 文件?
之后,我想出列这些文件以及:
animations.min.css
elementor-icons.min.css
global.css
前端 legacy.min.css
swiper.min.js
我已经浏览了几天,我开始感到失落,所以任何帮助将不胜感激!
您可以使用wp_deregister_style
和wp_dequeue_style
将 Elementor CSS 文件出列。为此,您需要传递 CSS 文件句柄名称。您可以使用以下代码将 Elementor 插件global.css
文件出列。
function dequeue_elementor_global__css() {
wp_dequeue_style('elementor-global');
wp_deregister_style('elementor-global');
}
add_action('wp_print_styles', 'dequeue_elementor_global__css', 9999);
这里elementor-global是 global.css 文件的句柄名称。您可以通过样式表 ID 获取任何文件句柄名称。
例如:如果任何样式表 ID 是elementor-global-css
,则此文件句柄将是elementor-global
我的理解是,所有 Elementor 前端样式,例如你的 post-1234.css 文件,是 'elementor-frontend' 的孩子,这意味着如果你卸载它,他们都不会加载。
如果您加载具有相同名称的新的,优化的 frontend.min.css 文件,那么它应该工作。
例如
function adg_dequeue_unnecessary_files() {
wp_dequeue_style( 'elementor-frontend' ); // remove Elementor's custom-frontend.min.css
wp_deregister_style( 'elementor-frontend' );
wp_register_style( 'elementor-frontend', get_stylesheet_directory_uri() . '/custom-frontend.min.css' ); // Purified replacement for Elementor's custom-frontend.min.css
wp_enqueue_style( 'elementor-frontend' );
}
add_action( 'wp_enqueue_scripts', 'adg_dequeue_unnecessary_files' );
另外。你不能只将你的 custom-frontend.min.css 添加到你的子主题中的相关位置,它会默认覆盖父主题版本吗?
这似乎工作。在几页和帖子上测试:
add_action( 'elementor/frontend/after_enqueue_styles', function() {
wp_deregister_style( 'elementor-frontend' );
wp_dequeue_style( 'elementor-frontend' );
wp_register_style( 'elementor-frontend', get_stylesheet_directory_uri() . '/ets/css/custom-elementor-front-end.css' );
wp_enqueue_style( 'elementor-frontend', get_stylesheet_directory_uri() . '/ets/css/custom-elementor-front-end.css' );
} );
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(46条)