: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* - 'retro' (a 8-bit arcade-style pixelated face)
* - 'monsterid' (a monster)
* - 'wavatar' (a cartoon face)
* - 'identicon' (the "quilt", a geometric pattern)
* - 'mystery', 'mm', or 'mysteryman' (The Oyster Man)
* - 'blank' (transparent GIF)
* - 'gravatar_default' (the Gravatar logo)
* @param string $alt Alternative text to use in the avatar image tag.
* @param array $args Arguments passed to get_avatar_data(), after processing.
return apply_filters( 'get_avatar', $avatar, $id_or_email, $args['size'], $args['default'], $args['alt'], $args );
if ( ! function_exists( 'wp_text_diff' ) ) :
* 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.
* @see wp_parse_args() Used to change defaults to user defined settings.
* @uses WP_Text_Diff_Renderer_Table
* @param string $left_string "old" (left) version of string.
* @param string $right_string "new" (right) version of string.
* @param string|array $args {
* Associative array of options to pass to WP_Text_Diff_Renderer_Table().
* @type string $title Titles the diff in a manner compatible
* with the output. Default empty.
* @type string $title_left Change the HTML to the left of the title.
* @type string $title_right Change the HTML to the right of the title.
* @type bool $show_split_view True for split view (two columns), false for
* un-split view (single column). Default true.
* @return string Empty string if strings are equivalent or HTML with differences.
function wp_text_diff( $left_string, $right_string, $args = null ) {
'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 );
$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";
$r .= "<caption class='diff-title'>$args[title]</caption>\n";
if ( $args['title_left'] || $args['title_right'] ) {
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";
$r .= "\t<$th_or_td_right>$args[title_right]</$th_or_td_right>\n";
if ( $args['title_left'] || $args['title_right'] ) {
$r .= "<tbody>\n$diff\n</tbody>\n";