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()