wp_text_diff()
Получает удобную для чтения HTML-таблицу с различиями между двумя переданными строками (текстами). Используется для сравнения изменений в ревизиях записи.
Если между строками нет различий, то wp_text_diff() вернет пустую строку. Возвращаемая таблица состоит из двух колонок: слева первый текст, справа второй. Удаленные и вставленные данные помечены тегами <del> и <ins>.
Так как функция возвращает HTML, она в первую очередь используется для визуального отображения различий между старым и новым текстом (например у редакций записи).
Pluggable функция — эту функцию можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.
Замена функции (переопределение) — в must-use или обычном плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.
Хуков нет.
Возвращает
Строку
. Cтроку: HTML код таблицы, если в строках есть разница. Если разницы нет, вернет пустую строку.
Использование
wp_text_diff( $left_string, $right_string, $args );
- $left_string(cтрока) (обязательный)
- "Старый текст" (будет слева).
- $right_string(cтрока) (обязательный)
- "Новый текст" (будет справа).
- $args(cтрока/массив)
Аргументы функции. Можно установить заголовки в таблице:
title
- заголовок общей таблицы. По умолчанию - пусто.
title_left
- заголовок левой колонки таблицы. По умолчанию - пусто.
title_right
- заголовок правой колонки таблицы. По умолчанию - пусто.По умолчанию: null
Примеры
#1 Демонстрация сравнивания текстов
$string = 'Старый текст что-то еще'; $string2 = 'Новый текст еще.'; echo wp_text_diff( $string , $string2, array( 'title' => 'Различия', 'title_left' => 'Старый', 'title_right' => 'Новый', ) );
Этот код выведет следующее:
<table class='diff'> <col class='content' /> <thead> <tr class='diff-title'> <th colspan='4'>Различия</th> </tr> <tr class='diff-sub-title'> <td></td> <th>Старый</th> <td></td> <th>Новый</th> </tr> </thead> <tbody> <tr> <td class='diff-deletedline'><del>Старый</del> текст<del> что-то</del> еще </td> <td> </td> <td class='diff-addedline'><ins>Новый</ins> текст еще<ins>.</ins> </td> </tr> </tbody> </table>
А выглядит так (зависит от css стилей вашей темы):
Различия | |||
---|---|---|---|
Старый | Новый | ||
Новый текст еще. |
Заметки
- Смотрите: wp_parse_args() Used to change defaults to user defined settings.
Список изменений
С версии 2.6.0 | Введена. |