如何在WordPress中更改.css的版本?


13

就像标题所示,我不太确定如何在主题中更改.css文件的版本。目前,.css版本如下:

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=4.6.1' type='text/css' media='all' />

是否需要运行一个脚本-我应该在何处制作上述版本4.6.2?


您如何打印此脚本?
内森·鲍威尔

Answers:


18

第四个参数,$ver用于wp_enqueue_style()允许您设置版本:

wp_enqueue_style( string $handle,
                  string $src = false,
                  array $deps = array(),
                  string|bool|null $ver = false,
                  string $media = 'all' );

根据文档:

$ ver(string | bool | null)(可选)指定样式表版本号(如果有的话)的字符串,该版本号作为查询字符串添加到URL中以用于缓存清除。如果version设置为false,则会自动添加一个与当前安装的WordPress版本相同的版本号。如果设置为null,则不添加任何版本。默认值: false


谢谢(我猜我想问的是“我该怎么做”),即“我如何运行该脚本以生成新版本”?希望这有意义...
亨利

您会使用代码在哪里更新您的问题wp_enqueue_style()吗?WordPress根据$ver答案中发布的说明自动处理版本控制,因此我假设将$ ver设置为false。如果要更改它,请将$ ver参数更改为新字符串(由于WordPress已使用该约定,因此我不使用4.6.2),但从技术上讲,它可以工作。
Dave Romsey

1
您可以轻松地在那里替换任何内容。例如$ver = time();,每次您访问页面时都会创建一个新版本,而该版本就是时间。
内森·鲍威尔

8

大多数情况下,主题的use wp_enqueue_style()函数在其functions.php文件中,以在标题中添加样式表。这是确定主题是否相同的方法。

打开wp-content/themes/YOUR_THEME_NAME/functions.php文件,然后找到添加样式表的行,例如:

wp_enqueue_style('main_style',  get_stylesheet_directory_uri() . '/style.css');

或喜欢:

wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() );

您可以搜索ID(-css部分除外)...如果ID为:main_style-cssmain-style在functions.php文件中搜索,您可能应该找到所要查找的代码行。

现在,您已经找到了代码,并且知道您的主题通过wp_enqueue_style()在functions.php文件中使用来添加此样式表。您需要更新此代码的版本。

$style_ver = filemtime( get_stylesheet_directory() . '/style.css' );
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', $style_ver );

如您所见,此代码使用filemtime()PHP函数获取style.css文件的最后修改时间,并且还使用PHP函数将时间转换为时间戳time(),以使事情变得更整洁。

如果您不想每次都动态更改版本,只需执行以下操作:

wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', '1.5' );

就是这样。和平!


请注意:您应该get_stylesheet_directory()在内部使用filemtime()它,因为它将返回系统路径。
半疯狂'17

3

我从这些答案中得到的并不多,所以我认为我会写出对我有用的东西。我知道抄本说:

$ ver(string | bool | null)(可选)指定样式表版本号(如果有的话)的字符串,该版本号作为查询字符串添加到URL中以用于缓存清除。如果version设置为false,则会自动添加一个与当前安装的WordPress版本相同的版本号。如果设置为null,则不添加任何版本。默认值:false

但这对于它的实际工作方式是非常神秘的。我无法获得版本号wp_enqueue_style来触发?ver=1.2.3样式表中的查询参数。但是,将其设置为true允许样式表的声明版本到cache bust样式表。(继续阅读)

在您的style.css中,您必须命名主题。WP需要这样做。但是其他选项,例如versionwp_enqueue_style的boolean版本也提供了引用。

/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- wp_enqueue_style's version number
Stylesheet: Main Stylesheet
******************************************************************/

现在,当我改变,要Version: 4.1我弄style.css?cache-bust=0.24135995238933283


2

您可以仅time()在入队样式或脚本这样的时间使用。

不使用wordpress wp_enqueue_style()功能

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=<?php echo time(); ?>' type='text/css' media='all' />

使用wp_enqueue_style()功能

wp_enqueue_style('style_sheet_name', get_stylesheet_directory_uri() . '/custom_style.css', '', time());

要么

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());

1
我不推荐这样做,我敢肯定它会击败所有版本缓存。
Fabian von Ellerts
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.