wp_text_diff( string $left_string, string $right_string, string|array $args = null )
Displays a human readable HTML representation of the difference between two strings.
Contents
Description Description
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.
See also See also
- wp_parse_args(): Used to change defaults to user defined settings.
Parameters Parameters
- $left_string
-
(string) (Required) "old" (left) version of string
- $right_string
-
(string) (Required) "new" (right) version of string
- $args
-
(string|array) (Optional) Associative array of options to pass to WP_Text_Diff_Renderer_Table().
- 'title'
(string) Titles the diff in a manner compatible with the output. Default empty. - 'title_left'
(string) Change the HTML to the left of the title. Default empty. - 'title_right'
(string) Change the HTML to the right of the title. Default empty. - 'show_split_view'
(bool) True for split view (two columns), false for un-split view (single column). Default true.
Default value: null
- 'title'
Return Return
(string) Empty string if strings are equivalent or HTML with differences.
Source Source
File: wp-includes/pluggable.php
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 ''; } $r = "<table class='diff'>\n"; if ( ! empty( $args['show_split_view'] ) ) { $r .= "<col class='content diffsplit left' /><col class='content diffsplit middle' /><col class='content diffsplit right' />"; } else { $r .= "<col class='content' />"; } if ( $args['title'] || $args['title_left'] || $args['title_right'] ) { $r .= '<thead>'; } if ( $args['title'] ) { $r .= "<tr class='diff-title'><th colspan='4'>$args[title]</th></tr>\n"; } if ( $args['title_left'] || $args['title_right'] ) { $r .= "<tr class='diff-sub-title'>\n"; $r .= "\t<td></td><th>$args[title_left]</th>\n"; $r .= "\t<td></td><th>$args[title_right]</th>\n"; $r .= "</tr>\n"; } if ( $args['title'] || $args['title_left'] || $args['title_right'] ) { $r .= "</thead>\n"; } $r .= "<tbody>\n$diff\n</tbody>\n"; $r .= '</table>'; return $r; }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
2.6.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Example
Expand full source codeCollapse full source code
This will output the following html:
Expand full source codeCollapse full source code