gpt4 book ai didi

wordpress-theming - purgecss 无法识别条件类

转载 作者:行者123 更新时间:2023-12-03 23:11:49 25 4
gpt4 key购买 nike

所以我将 TailwindCSS 用于我正在开发的 WP 主题。

我在创建生产级主题文件时遇到了一个问题,因为根据我对问题的理解,purgecss 无法识别模板部件上使用的条件类。例如,假设我创建了一个名为“business-card.php”的模板部分,我在其中传递了一个变量 type (使用 set_query_var/get_query_var ):

page-about.php

set_query_var('type', 'A');
get_template_part('template-parts/content/business', 'card');

set_query_var('type', 'B');
get_template_part('template-parts/content/business', 'card');

businesss-card.php
$type = get_query_var('type')
<div class="<?php echo type == 'A' ? 'text-color-A' : 'text-color-B' ?>">
--- insert some content here ---
</div>

所以会有两个 div,一个有 text-color-A 类,另一个有 text-color-B ,两者都是使用配置文件创建的(而不是包含在基本的顺风主题中)。这在开发中很好——因为 tailwind 实际上从配置文件创建了实用程序颜色类。但是出于某种原因,当它在生产中(即清除和缩小)时,它没有那些实用程序类——它们只在模板部分作为条件类使用(而不是在任何其他文件中)。

最佳答案

PurgeCSS 在您的 HTML 中查找类的方式非常天真。它不会尝试解析您的 HTML 并查找类属性或动态执行您的 JavaScript — 它只是在整个文件中查找与此正则表达式匹配的任何字符串:

/[^<>"'`\s]*[^<>"'`\s:]/g
这意味着避免在模板中使用字符串连接动态创建类字符串很重要,否则 PurgeCSS 将不知道保留这些类。
所以不要使用字符串连接来创建类名:
<div :class="text-{{ error ? 'red' : 'green' }}-600"></div>
相反,动态选择一个完整的类名:
<div :class="{{ error ? 'text-red-600' : 'text-green-600' }}"></div>
只要一个类名完整地出现在你的模板中,PurgeCSS 就不会删除它。
有关更多详细信息,请参阅文档:
  • Writing purgeable HTML
  • 关于wordpress-theming - purgecss 无法识别条件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61312762/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com