sanitize_html_class() | 清理WordPress里HTML类名中的非法字符

作者猫斯基 2015-01-27 84 人读过

最新文章

函数

sanitize_html_class( string $class, string $fallback = '' )

描述

清理WordPress里HTML类名中的非法字符,以确保它只包含有效字符。

将字符串剥离为 AZ,az,0-9,_,-

参数

$class,( string ) (必需) 要清理的类名。

$fallback,( string ) (可选) 如果清理结束为空字符串时要返回的值。默认为空字符串。默认值:''

返回值

(string) 清理后的值。如果这导致空字符串,则它将返回提供的替代值。

建站迷·划重点

类名不能以数字开头,此函数不考虑这一点。

此函数可能会返回一个以数字开头的字符串,根据 W3C 定义,这些字符串不是有效的类名。

相关函数

来源

文件:wp-includes/formatting.php

更新日志

版本 描述
2.8.0 介绍。

示例

$post_class = sanitize_html_class( $post->post_title );
echo '<div class="' . $post_class . '">';

一次性清理多个 HTML 类。

/**
 *
 * @param    array  $classes           Classes to be sanitized.
 * @param    string $return_format     The return format, 'input', 'string', or 'array'.
 * @return   array|string
 */
function prefix_sanitize_html_classes( $classes, $return_format = 'input' ) {
    if ( 'input' === $return_format ) {
        $return_format = is_array( $classes ) ? 'array' : 'string';
    }
 
    $classes           = is_array( $classes ) ? $classes : explode( ' ', $classes );
    $sanitized_classes = array_map( 'sanitize_html_class', $classes );
 
    if ( 'array' === $return_format ) {
        return $sanitized_classes;
    } else {
        return implode( ' ', $sanitized_classes );
    }
}

创建这个函数来帮助转义多个 HTML 类,你可以给它一个类数组或一个由分隔符分隔的字符串。

if( ! function_exists("sanitize_html_classes") ){
    function sanitize_html_classes($classes, $sep = " "){
        $return = "";
 
        if(!is_array($classes)) {
            $classes = explode($sep, $classes);
        }
 
        if(!empty($classes)){
            foreach($classes as $class){
                $return .= sanitize_html_class($class) . " ";
            }
        }
 
        return $return;
    }
}

本文由 猫斯基 原创发布。

著作权均归用户本人所有。独家文章转载,请联系本站管理员。获得授权后,须注明本文地址! 本文地址:https://maosiji.com/wordpress/wordpress-sanitize_html_class.html