无法获取子主题以加载最新版本的style.css

时间:2014-05-20 作者:user1199360

我正在使用正确设置的儿童主题。但我无法改变儿童主题风格。css将反映在网站中。尝试清空浏览器缓存一百万次,但都不起作用!

I\'v创建了子模板文件,它们覆盖了父模板文件。

我注意到在view sourse中,它在样式表的末尾放置了一个版本号,如下:-样式。css?版本=3.9.1,尽管我没有创建任何版本!

在我创建的另一个站点中,样式表没有版本控制,所以为什么当我不想设置它时,它会自动放入。

如何强制它使用最新版本的子样式。css文件,而不是版本?

以下是我的网站url:-http://www.peterswebservices.co.uk/

5 个回复
SO网友:whoaitsaimz

在214年,试着把这个放在你的孩子主题中:

function add_require_scripts_files() {
 wp_enqueue_style(\'twentyfourteen-style\', get_stylesheet_directory_uri().\'/style.css\', array(), \'1.0.0\', "all");        
}
add_action( \'wp_enqueue_scripts\', \'add_require_scripts_files\' );
这将用您自己的版本替换原始样式表。如果您使用的是不同的父主题,请查看原始wp\\U enqueue\\U样式标签中的样式。css并在子主题中复制该标签。每次进行更改时,您都必须将1.0.0更改为另一个数字(因此,对于不经常进行更改的生产环境来说,这更好)。

要同时从脚本和样式中删除版本,请尝试以下操作:

// remove WP version tag from scripts and styles, best for dev environments
// by Adam Harley https://wordpress.org/support/topic/enqueueregister-script-remove-version
add_filter( \'script_loader_src\', \'remove_src_version\' );
add_filter( \'style_loader_src\', \'remove_src_version\' );
function remove_src_version ( $src ) {
  global $wp_version;
  $version_str = \'?ver=\'.$wp_version;
  $version_str_offset = strlen( $src ) - strlen( $version_str );
  if( substr( $src, $version_str_offset ) == $version_str )
    return substr( $src, 0, $version_str_offset );
}

SO网友:bubencode

将以下函数添加到“函数”中。在类似的情况下,我与X一起使用的儿童主题的php对我帮助很大。

add_action( \'wp_enqueue_scripts\', \'enqueue_child_theme_styles\', PHP_INT_MAX);
function enqueue_child_theme_styles() {
    wp_enqueue_style( \'parent-style\', get_template_directory_uri().\'/style.css\' );
    wp_enqueue_style( \'child-style\', get_stylesheet_uri(), NULL, filemtime( get_stylesheet_directory() . \'/style.css\' ) );
}
只是do not forget 在启动网站live之前删除此项。

还要注意缓存托管服务提供商的功能以使此更新生效。

根据作者的说法:

。。。最好的方法是在WordPress中包含一个childtheme样式表,并将其与filemtime()相结合,以强制浏览器加载css文件的新版本。我没有将filemtime()用于父样式,因为我从未接触过它,因此filemtime()只会浪费资源。

Source:Daniel截至2014年10月22日对文章的评论Prevent CSS Caching:https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141

SO网友:Gareth Gillman

没有看到网站,我们无法帮助诊断问题,但常见的情况是主题css优先于子css,您可以使用!important 标签,例如。

#element {
 color:#fff !important;
}
重要标记将css标记为优先于具有相同css行的任何其他css文件

让我们知道url,如果这有帮助

SO网友:Kit Johnson

我也遇到了同样的问题,结果是我的新主机默认打开了某种缓存。我去我的控制面板刷新缓存,然后它正确地服务于正确的样式。css文件。

这个ver=3.9.1被证明是一条红鲱鱼(至少对我来说)。在我刷新缓存后,它仍然说?ver=3.9.1,这在我的css文件中找不到,但一切正常。

SO网友:GorgE_MirO

我也遇到了同样的问题,我用另一种方法修复了它,而不是默认值。

首先,我找到了需要更改的文件:

wp-includes\\theme.php
有一个函数称为get_stylesheet_uri

我的函数如下所示:

function get_stylesheet_uri() {
    $time = time();
    $stylesheet_dir_uri = get_stylesheet_directory_uri();
    $stylesheet_uri = $stylesheet_dir_uri . \'/style.css?v=\'.$time;
    /**
     * Filter the URI of the current theme stylesheet.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     Stylesheet URI for the current theme/child theme.
     * @param string $stylesheet_dir_uri Stylesheet directory URI for the current theme/child theme.
     */
    return apply_filters( \'stylesheet_uri\', $stylesheet_uri, $stylesheet_dir_uri );
}

结束

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c