php WordPress的SVG帮助程序函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php WordPress的SVG帮助程序函数相关的知识,希望对你有一定的参考价值。
<?php
// Throw this in your theme and include it in your functions.php file
/**
* Helper function for fetching SVG icons
*
* @param string $icon Name of the SVG file in the icons directory
* @return string Inline SVG markup
*/
function wp_svg_icon( $icon = '' ) {
if ( ! $icon ) {
return;
}
$path = get_template_directory() . '/assets/icons/' . $icon . '.svg';
$args = [
'css_class' => 'icon icon-' . $icon,
];
return wp_get_svg( $path, $args );
}
/**
* Helper function for fetching SVG logos
*
* @param string $logo Name of the SVG file in the logos directory
* @return string Inline SVG markup
*/
function wp_svg_logo( $logo = '' ) {
if ( ! $logo ) {
return;
}
$path = get_template_directory() . '/assets/img/logos/' . $logo . '.svg';
$args = [
'css_class' => 'logo logo-' . sanitize_title( $logo ),
];
return wp_get_svg( $path, $args );
}
/**
* Generic helper to modify the markup for a given path to an SVG
*
* @param string $path Absolute path to the SVG file
* @param array $args Args to modify attributes of the SVG
* @return string Inline SVG markup
*/
function wp_get_svg( $path = '', $args = array() ) {
if ( ! $path ) {
return;
}
$defaults = [
'role' => 'image',
'css_class' => '',
];
$args = wp_parse_args( $args, $defaults );
$role_attr = $args['role'];
$css_class = $args['css_class'];
if ( is_array( $css_class ) ) {
$css_class = implode( ' ', $css_class );
}
if ( file_exists( $path ) ) {
$svg = file_get_contents( $path );
$svg = preg_replace( '/(width|height)="[\d\.]+"/i', '', $svg );
$svg = str_replace( '<svg ', '<svg class="' . esc_attr( $css_class ) . '" role="' . esc_attr( $role_attr ) . '" ', $svg );
return $svg;
}
}
以上是关于php WordPress的SVG帮助程序函数的主要内容,如果未能解决你的问题,请参考以下文章
php WordPress内联SVG功能
php 在WordPress主题中使用SVG图标
php 允许SVG通过WordPress Media Uploader
php Insertar un logo SVG animado en WordPress
wordpress 在functions.php第5行的非对象上调用成员函数add_section()
WordPress 定制程序错误:调用未知的成员函数 add_setting()