Twig+wordpress-如何获取style.css的filemtime
我在wordpress主题中使用了细枝+木材。我以这种方式包含style.css文件Twig+wordpress-如何获取style.css的filemtime,wordpress,twig,timber,Wordpress,Twig,Timber,我在wordpress主题中使用了细枝+木材。我以这种方式包含style.css文件 <link rel="stylesheet" href="{{ site.theme.uri }}/dist/css/style.min.css" /> 有几种方法可以处理这个问题,它们都涉及到编写一些PHP 第一种方法,也是我推荐的方法,是使用而不是将标签添加到您的细枝文件中 /** *将以下标记放置到页面中,其中 *`{theme\u url}`=主题目录的url *`{filemtime}`
<link rel="stylesheet" href="{{ site.theme.uri }}/dist/css/style.min.css" />
有几种方法可以处理这个问题,它们都涉及到编写一些PHP 第一种方法,也是我推荐的方法,是使用而不是将标签添加到您的细枝文件中 /** *将以下标记放置到页面中,其中 *`{theme\u url}`=主题目录的url *`{filemtime}`=上次修改日期的时间戳 *对于样式表 * */ 函数my_自定义_css_样式{ wp_排队式 “主要风格”, 获取模板目录uri'/dist/css/style.min.css', 大堆 filemtimeget\u template\u目录'/dist/css/style.min.css', 错误的 } 添加动作“wp_排队_脚本”、“我的自定义_css_样式”; 如果需要,您可以将多个样式表放入函数中,并且可以包含逻辑,根据post类型、post ID或您可以使用PHP确定的关于当前页面的任何内容有条件地加载它们 如果由于某种原因这对您不起作用,第二种方法是使用PHP生成您的版本号,然后将其作为新变量添加到您的上下文中。细枝中的线条如下所示:
<link rel="stylesheet" href="{{ site.theme.uri }}/dist/css/style.min.css?ver={{ style_css_version }}" />
如果您希望在站点上的每个页面上使用此功能,而不仅仅是在具有特定模板的页面上,您可以从functions.php将其添加到全局木材上下文中。更多信息,请访问:
函数my_custom_timber_context$context{
$context['style_css_version']=filemtimeget_template_目录。'/dist/css/style.min.css';
}
添加_过滤器'timber_context'、'my_custom_timber_context';
有几种方法可以处理这个问题,它们都涉及到编写一些PHP 第一种方法,也是我推荐的方法,是使用而不是将标签添加到您的细枝文件中 /** *将以下标记放置到页面中,其中 *`{theme\u url}`=主题目录的url *`{filemtime}`=上次修改日期的时间戳 *对于样式表 * */ 函数my_自定义_css_样式{ wp_排队式 “主要风格”, 获取模板目录uri'/dist/css/style.min.css', 大堆 filemtimeget\u template\u目录'/dist/css/style.min.css', 错误的 } 添加动作“wp_排队_脚本”、“我的自定义_css_样式”; 如果需要,您可以将多个样式表放入函数中,并且可以包含逻辑,根据post类型、post ID或您可以使用PHP确定的关于当前页面的任何内容有条件地加载它们 如果由于某种原因这对您不起作用,第二种方法是使用PHP生成您的版本号,然后将其作为新变量添加到您的上下文中。细枝中的线条如下所示:
<link rel="stylesheet" href="{{ site.theme.uri }}/dist/css/style.min.css?ver={{ style_css_version }}" />
如果您希望在站点上的每个页面上使用此功能,而不仅仅是在具有特定模板的页面上,您可以从functions.php将其添加到全局木材上下文中。更多信息,请访问:
函数my_custom_timber_context$context{
$context['style_css_version']=filemtimeget_template_目录。'/dist/css/style.min.css';
}
添加_过滤器'timber_context'、'my_custom_timber_context';
我更喜欢这种灵活的方法 functions.php 主题.细枝模板
我更喜欢这种灵活的方法 functions.php 主题.细枝模板
出于某种原因,我需要使用不正确的方法。我将filemtime添加到add_to_上下文函数add_to_上下文'style_version',filemtimeget_模板_目录中/dist/css/style.min.css';我工作。但我还有一个问题。当我添加?ver=xxxx文件时,我的css文件已缩小。为什么会这样?我怎么能同时拥有这两个,带有版本控制的小型css?嗯,我想不出任何与木材相关的原因。您可能应该在Wordpress开发类别中发布一个新问题。问题已解决。这是我的错误。我没有运行负责缩小的grunt任务,因为某些原因,我需要使用不正确的方法。我将filemtime添加到add_to_上下文函数add_to_上下文'style_version',filemtimeget_模板_目录中/dist/css/style.min.css';我工作。但我还有一个问题。当我添加?ver=xxxx文件时,我的css文件已缩小。为什么会这样?我怎么能同时拥有这两个,带有版本控制的小型css?嗯,我想不出任何与木材相关的原因。您可能应该在Wordpress开发类别中发布一个新问题。问题已解决。这是我的错误。我没有运行负责缩小的grunt任务
/**
* versioned_theme_uri() Twig Function
*
* Create an auto-versioned URI for a relative theme file.
*
* @param \Twig\Environment $twig The Twig environment.
* @return \Twig\Environment
*/
function kevinlearynet_extend_timber_twig($twig) {
$twig_function = new Timber\Twig_Function( 'theme_uri_versioned', function ($theme_file) {
$uri = get_theme_file_uri( $theme_file );
$filepath = get_theme_file_path( $theme_file );
$version = file_exists( $filepath ) ? filemtime( $filepath ) : 'FILE_NOT_FOUND';
return "$uri?v=$version";
} );
$twig->addFunction( $twig_function );
return $twig;
}
add_filter( 'timber/twig', 'kevinlearynet_extend_timber_twig' );
<link rel="stylesheet" href="{{ theme_uri_versioned('dist/app.min.js') }}" type="text/css" media="all" />