我使用付费主题,不幸的是它不提供从字体使用自己的图标的可能性。因为我必须遵守GDPR,不能使用谷歌图标,我想使用本Map标。唯一的可能性是导入我自己的CSS文件,并定义图标的unicode。我已经使用了一个子主题,并已成功地在父主题中定义了我的本Map标字体,但我不知道如何将我的自定义转移到儿童主题。
父文件:/themes/mytheme/includes/assets.php
- 这里我没有做任何修改。我只是将字体的css定义添加到现有的icons.css中。但我的目标是将其分离。所以这里我必须在register_scripts函数中添加另一行,以便加载我的CSS。
wp_register_style( 'local-icons', c27()->template_uri( 'assets/dist/local-icons'.$suffix.'.css' ), [], \MyTheme\get_assets_version() );
*
class Assets {
...
...
public function register_scripts() {
...
...
...
wp_register_style( 'mytheme-icons', c27()->template_uri( 'assets/dist/icons'.$suffix.'.css' ), [], \MyTheme\get_assets_version() );
...
...
}
}
...
public function enqueue_scripts() {
global $wp_query;
...
...
wp_enqueue_style( 'mytheme-icons' );
...
}
什么是c27
function c27() {
return mytheme()->helpers();
}
父节点:/themes/mytheme/includes/源代码/管理员/管理员.php
- 在这里,我向enqueue_scripts()函数添加了以下内容:
wp_enqueue_style( 'mytheme-local-icons' );
在wp_send_json返回的get_icon_packs()函数中,我添加了以下内容:'local-icons' => array_values( \MyTheme\Utils\Icons\Local_Icons::get() ),
*
class Admin {
...
...
public function enqueue_scripts() {
...
...
wp_enqueue_style( 'mytheme-icons' );
...
}
...
...
public function get_icon_packs() {
if ( ! is_user_logged_in() ) {
return;
}
return wp_send_json( [
'mytheme-icons' => array_values( \MyTheme\Utils\Icons\mytheme_Icons::get() ),
'font-awesome' => array_values( \MyTheme\Utils\Icons\Font_Awesome::get() ),
] );
}
....
....
}
父文件:/themes/mytheme/includes/实用程序/图标/主题图标.php
- 这里我创建了一个新文件,并为我的字体做了Map。*
<?php
namespace MyTheme\Utils\Icons;
if ( ! defined('ABSPATH') ) {
exit;
}
class Theme_Icons {
public static function get() {
return [
'' => 'icon-add-circle-1',
'' => 'icon-airplane',
'' => 'icon-alien',
...
...
];
}
}
我已经在上面的每个文件中做了修改,一切都按预期运行。但是将来安装主题更新时会出现问题。我如何扩展子主题中的类,以便使用我自己的本Map标?
希望有人能帮我一点忙。
PS:我不是开发人员,但懂一点编程
1条答案
按热度按时间rxztt3cl1#
创建子主题并添加文件custom-icons.css
然后将以下代码添加到文件functions.php中
这会正确地将你的CSS文件添加到你的主题中。并且拥有一个子主题允许你更新父主题(主主题)而不必在更新时重新添加代码。