Uma área de pesquisa sobre o WordPress para devs e autores do tema



wp_text_diff ›

Desde2.6.0
Obsoleton/a
wp_text_diff ( $left_string, $right_string, $args = null )
Parâmetros: (3)
  • (string) $left_string "old" (left) version of string
    Required: Yes
  • (string) $right_string "new" (right) version of string
    Required: Yes
  • (string|array) $args { Associative array of options to pass to WP_Text_Diff_Renderer_Table().
    Required: No
    Padrão: null
Usos:
  • Text_Diff
  • WP_Text_Diff_Renderer_Table
Ver:
Retorna:
  • (string) Empty string if strings are equivalent or HTML with differences.
Definido em:
Codex:

Displays a human readable HTML representation of the difference between two strings.

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.



Fonte

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;
	}
endif;