Answers:
版本号是的参数wp_enqueue_style()
。
根据食典,这里是所有wp_enqueue_style
接受的参数。
wp_enqueue_style( $handle, $src, $deps, $ver, $media );
例如,要加载具有版本号的样式表,您可以执行以下操作:
function wpa_90820() {
wp_enqueue_style('my-styles', get_stylesheet_directory_uri() .'/my-styles.css', array(), '1.0' );
}
add_action('wp_enqueue_scripts', 'wpa_90820');
wp_enqueue_style
请您完成作业。
wp_enqueue_style()
用于加载有问题的样式表,则其句柄是第一个参数。如果您的主题是对header.php中的样式表进行硬编码,则它将没有句柄。
在某些情况下,您可能会发现更好地动态版本化样式表,而不是强制使用版本,因此,只要更改样式表,它便会立即自动更改并刷新浏览器缓存,而不必一遍又一遍地编辑您的functions.php。
您可以使用filemtime()来做到这一点。这是在引用parent_style的子样式中执行的操作
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), filemtime( get_stylesheet_directory() . '/style.css' ) );
如果您是主题开发人员,则在推送新版本时可能希望强制重新加载资产。
因此,主题的版本控制在 style.css
/*
Theme Name: Your Theme Name
Version: 1.0.2
*/
在您的顶部functions.php
:
$theme = wp_get_theme();
define('THEME_VERSION', $theme->Version); //gets version written in your style.css
稍后将CSS或JS放入队列时,请使用THEME_VERSION
第四个参数:
function theme_styles()
{
wp_enqueue_style('main', get_template_directory_uri().'/css/main.css', [], THEME_VERSION, 'all');
}
add_action('wp_enqueue_scripts', 'theme_styles');
将输出到页面:
.../your-theme-name/css/main.css?ver=1.0.2
当您有更多资产需要处理并且不想手动更改时,它会很方便。
您可以使用以下方式之一实现此目的:
1)在主题的header.php文件中添加以下标记。
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>'?v=1.2" type="text/css" media="all" />
2)在主题的functions.php文件中添加以下代码。
function theme_styles()
{
// Register the style like this for a theme:
// (First the unique name for the style (custom-style) then the src,
// then dependencies and ver no. and media type)
wp_enqueue_style( 'style-css', get_template_directory_uri() . '/style.css', array(), '1.2', 'all' );
}
add_action('wp_enqueue_scripts', 'theme_styles');
有关更多信息,请参见此页面。
将css加载到wordpress主题中的最佳方法是functions.php文件中的以下代码:
function theme_styles()
{
global $ver_num; // define global variable for the version number
$ver_num = mt_rand() // on each call/load of the style the $ver_num will get different value
wp_enqueue_style( 'style-css', get_template_directory_uri() . '/style.css', array(), $ver_num, 'all' );
}
add_action('wp_enqueue_scripts', 'theme_styles');
这是在主题中加载样式的正确方法,也是登台/测试目的的最佳方法,因为每次刷新都会提供样式的更新版本。
如果要避免第一种方式加载,可以使用此简短版本,并将以下行放入header.php文件中,将得到相同的结果:
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); echo '?ver=' . filemtime( get_stylesheet_directory() . '/style.css'); ?>" type="text/css" media="screen, projection" />
干杯
尝试这个:
将此添加到functions.php
function autoVer($filename){
$url = get_template_directory_uri() . $filename;
$file = get_template_directory() . $filename;
if ( file_exists($file)) {
return $url . '?v=' .md5(date("FLdHis", filectime($file)) . filesize($file));
}
clearstatcache();
}
将其添加到页眉或页脚-> autoVer('/ js / main.js');
与目前介绍的方法相反,我认为最好使用出现在style.css文件顶部的版本号:
// style.css
/**
Theme Name: My theme
...
Version: 1.2.3
...
**/
要在CSS中使用主题的版本,请将以下内容添加到functions.php(或等效文件)脚本中:
<?php
wp_enqueue_style(
'my-theme',
get_stylesheet_directory_uri() . '/style.css',
[],
wp_get_theme()->get('Version')
);
这意味着,在编辑style.css文件之后,您要做的就是更改同一文件顶部的版本号,以查看前端的更改。
如果检查主题HTML的头部,将看到以下内容:
<link rel='stylesheet'
id='my-theme-css'
href='... style.css?ver=1.2.3'
type='text/css'
media='all'
/>
这是通过两次调用函数 来获取版本号的直接方法bloginfo($show)
。首先是样式表,其次是版本号。
<link rel="stylesheet" id="style-css" href="<?php bloginfo('stylesheet_url'); ?>?ver=<?php bloginfo('version'); ?>" type="text/css" media="all" />
这里的所有都是它的。希望有帮助或有用。您可以浏览所有可用参数,并查看可以使用该bloginfo()
函数输出的内容。
由于@Ravs指出了有关bloginfo()函数的'versions'参数的错误,请忽略我的评论。它确实会打印Wordpress版本号。