仅替换HTML元素中的字符或短语。

原型

wp_replace_in_html_tags( string $haystack, array $replace_pairs )

参数

$haystack (string) (Required) 必须格式化的文本。

$replace_pairs (array) (Required) 在表单数组中(‘from’=>’到’,…)。

返回值

(string)  格式化的文本。

源文件

路径:wp-includes/formatting.php

<?php
...
function wp_replace_in_html_tags( $haystack, $replace_pairs ) {
	// Find all elements.
	$textarr = wp_html_split( $haystack );
	$changed = false;
	// Optimize when searching for one item.
	if ( 1 === count( $replace_pairs ) ) {
		// Extract $needle and $replace.
		foreach ( $replace_pairs as $needle => $replace );
		// Loop through delimiters (elements) only.
		for ( $i = 1, $c = count( $textarr ); $i < $c; $i += 2 ) {
			if ( false !== strpos( $textarr[$i], $needle ) ) {
				$textarr[$i] = str_replace( $needle, $replace, $textarr[$i] );
				$changed = true;
			}
		}
	} else {
		// Extract all $needles.
		$needles = array_keys( $replace_pairs );
		// Loop through delimiters (elements) only.
		for ( $i = 1, $c = count( $textarr ); $i < $c; $i += 2 ) {
			foreach ( $needles as $needle ) {
				if ( false !== strpos( $textarr[$i], $needle ) ) {
					$textarr[$i] = strtr( $textarr[$i], $replace_pairs );
					$changed = true;
					// After one strtr() break out of the foreach loop and look at next element.
					break;
				}
			}
		}
	}
	if ( $changed ) {
		$haystack = implode( $textarr );
	}
	return $haystack;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/wp_replace_in_html_tags/