您不需要复制inc/icon-functions.php
文件和include
/require
它来自儿童主题—请记住,父主题也将加载相同的文件/函数,如果未重命名复制文件中的函数,则会导致PHP错误。
因此,请尝试以下方法:
(正如我所见,您已经正确地完成了这一步。但为了完整起见,我包括了这一步。)复制SVG文件(assets/images/svg-icons.svg
) 到您的子主题并粘贴Etsy\'s SVG path
对此svg-icons.svg
文件
<!-- In wp-content/themes/your-theme/assets/images/svg-icons.svg -->
<symbol id="icon-etsy" viewBox="0 0 24 24">
<path ...></path>
</symbol>
复制
twentyseventeen_include_svg_icons()
功能到您的孩子主题
functions.php
文件,然后重命名函数。解开挂钩
twentyseventeen_include_svg_icons
从…起
wp_footer
, 然后将重命名的函数挂接到
wp_footer
:
function my_theme_include_svg_icons() {
// Define SVG sprite file.
$svg_icons = get_stylesheet_directory() . \'/assets/images/svg-icons.svg\';
// If it exists, include it.
if ( file_exists( $svg_icons ) ) {
require_once( $svg_icons );
}
}
remove_action( \'wp_footer\', \'twentyseventeen_include_svg_icons\', 9999 );
add_action( \'wp_footer\', \'my_theme_include_svg_icons\', 9999 );
使用
twentyseventeen_social_links_icons
钩子将Etsy图标添加到图标数组:
add_filter( \'twentyseventeen_social_links_icons\', function ( $icons ) {
$icons[\'etsy.com\'] = \'etsy\';
return $icons;
} );
保存主题功能文件,重新加载浏览器缓存(如有必要),并检查Etsy图标是否如预期的那样出现。(但它应该……))
顺便说一句,您不必将SVG文件保存在assets/images
, 但出于测试目的,只需使用该默认路径即可。
此外,请确保您的“社交链接”菜单中的菜单项etsy.com
在链接URL中。但您也可以手动显示“E”符号,如下所示:
echo twentyseventeen_get_svg( array( \'icon\' => \'etsy\', \'title\' => __( \'Testing Etsy symbol\', \'my-theme\' ) ) );