wp_text_diff()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
wp_text_diff( string $left_string, string $right_string, string|array $args = null ): string
Описание
Diff позволяет получить изменения между версиями. Результат — HTML, поэтому основное назначение — отображение изменений. Если обе строки одинаковы, возвращается пустая строка.
См. alsowp_parse_args(): используется для замены значений по умолчанию пользовательскими настройками.
Оригинал (английский)
The Diff is available for getting the changes between versions. The output is HTML, so the primary use is for displaying the changes. If the two strings are equivalent, then an empty string will be returned.
- wp_parse_args(): Used to change defaults to user defined settings.
Параметры
$left_string
string
обязательный
$right_string
string
обязательный
$args
string|array
необязательный
= null
Возвращаемое значение
string
Исходный код
wp-includes/pluggable.php:3387
function wp_text_diff( $left_string, $right_string, $args = null ) {
$defaults = array(
'title' => '',
'title_left' => '',
'title_right' => '',
'show_split_view' => true,
);
$args = wp_parse_args( $args, $defaults );
if ( ! class_exists( 'WP_Text_Diff_Renderer_Table', false ) ) {
require ABSPATH . WPINC . '/wp-diff.php';
}
$left_string = normalize_whitespace( $left_string );
$right_string = normalize_whitespace( $right_string );
$left_lines = explode( "\n", $left_string );
$right_lines = explode( "\n", $right_string );
$text_diff = new Text_Diff( $left_lines, $right_lines );
$renderer = new WP_Text_Diff_Renderer_Table( $args );
$diff = $renderer->render( $text_diff );
if ( ! $diff ) {
return '';
}
$is_split_view = ! empty( $args['show_split_view'] );
$is_split_view_class = $is_split_view ? ' is-split-view' : '';
$r = "<table class='diff$is_split_view_class'>\n";
if ( $args['title'] ) {
$r .= "<caption class='diff-title'>$args[title]</caption>\n";
}
if ( $args['title_left'] || $args['title_right'] ) {
$r .= '<thead>';
}
if ( $args['title_left'] || $args['title_right'] ) {
$th_or_td_left = empty( $args['title_left'] ) ? 'td' : 'th';
$th_or_td_right = empty( $args['title_right'] ) ? 'td' : 'th';
$r .= "<tr class='diff-sub-title'>\n";
$r .= "\t<$th_or_td_left>$args[title_left]</$th_or_td_left>\n";
if ( $is_split_view ) {
$r .= "\t<$th_or_td_right>$args[title_right]</$th_or_td_right>\n";
}
$r .= "</tr>\n";
}
if ( $args['title_left'] || $args['title_right'] ) {
$r .= "</thead>\n";
}
$r .= "<tbody>\n$diff\n</tbody>\n";
$r .= '</table>';
return $r;
}
История изменений
| Версия | Описание |
|---|---|
| 2.6.0 | Introduced. |

