wp_text_diff

説明

string wp_text_diff( string $left_string, string $right_string [ , mixed $args = null ] )
2つの文字列を比較する。

パラメータ

  • $left_string
    古い方の文字列を指定。
  • $right_string
    新しい方の文字列を指定。
  • $args
    取得条件を連想配列または文字列で指定(省略時はnull)。主なキーは次の通り。
    キー内容省略時の値
    'show_split_view'比較結果を左右で表示する場合はtrueを指定true
    'title'表全体のタイトルを指定''
    'title_left'$left_stringのタイトルを指定''
    'title_right'$right_stringのタイトルを指定''

返り値

文字列の違いを示すHTML(table要素)を返す。違いがない場合は空の文字列を返す。


注意

比較は行単位で行われ、左右比較モード('show_split_view'がtrue)では、以下のような内容になる。

違い左側右側
古い方のみにあるtd要素はdiff-deletedlineクラス
新しい方のみにあるtd要素はdiff-addedlineクラス
内容が異なるtd要素はdiff-deletedlineクラスtd要素はdiff-addedlineクラス

単一モード('show_split_view'がfalse)では、以下のような内容になる。

違い左側
古い方のみにあるtd要素はdiff-deletedlineクラス
新しい方のみにあるtd要素はdiff-addedlineクラス
内容が異なる1行目のtd要素はdiff-deletedlineクラス、2行目のtd要素はdiff-addedlineクラス

なおパラメータ$argsに'title'、'title_left'、'title_right'のいずれかを指定するとthead要素内が4カラムになり、tbody要素内とカラム数が異なってしまい、意図した表示にならない(バージョン4.9.8で確認)。タイトルを付けたい場合は本関数を使用せず、本関数を参考にして独自に実装する方がいいだろう。


使用例

  • 投稿とリビジョンの本文部分を比較し、結果を左右比較モードで表示する。
    <?php echo wp_text_diff( $revisions[0]->post_content, $post->post_content ); ?>
  • 投稿とリビジョンの本文部分を比較し、結果を単一モードで表示する。
    <?php echo wp_text_diff( $revisions[0]->post_content, $post->post_content, array( 'show_split_view' => false ) ); ?>

フィルター

実行するフィルターはありません。

アクション

実行するアクションはありません。

ソースファイル

/wp-includes/pluggable.php

最終更新 : 2018年08月27日 12:56


お勧め

カスタムフィールド関連関数のおさらい(2012年6月22日 更新)

カスタムフィールドは、投稿記事の拡張情報としてよく利用されている。投稿ページで登録した情報をアーカイブや投稿ページで表示しているが、投稿ページを表示する際にカスタムフィールドの値を更新して、サイドバーのようなページ内要素に利用したりしている。

MOファイルを作ってみた(2018年7月25日 更新)

テーマやプラグインで使用するMOファイルはWindows環境では「Poedit」アプリを使うことが多かったが、最近では「GlotPress」のようなプラグインも増えてきており、選択肢は広がっている。定期的に開発環境を見直す過程で「Poedit」から「GlotPress」に切り替えようと思ったのだが、微妙にしっくりこなかった。

日本語名のユーザーを登録する(2018年5月27日 更新)

標準のログインID(ユーザー名)は、英数字と一部の記号の組み合わせで構成されている。一般的なシステムのログインIDはおおむねこんな感じだが、ふと「インターネット環境ならログインIDに日本語が使用できてもいいんじゃないか」と思い、実現できるか調べてみた。

ショートコードを使ってテーマ内の画像URLを簡単に指定する(2018年5月27日 更新)

投稿記事の中で画像パーツを使いたいときがある。画像パーツの配置場所は、/imgディレクトリのようなテーマ外の場合と、/wp-content/themes/mytheme/imagesディレクトリのようなテーマ内の場合があり、今回は後者のケース。ショートコードを使って投稿記事の画像ファイルのURLを記述する方法を紹介したい。

HTML entities button:プラグイン作ってみました(2017年12月17日 更新)

以前投稿した「HTML編集モードに定型文ボタンを追加する」をアレンジして、HTML編集モードに特殊文字(HTMLエンティティ)を挿入できるボタン、顔文字を挿入できるボタン、過去の投稿ページのリンクを挿入できるボタンを追加するプラグインを作ってみました。HTML編集モードの作業効率を向上させるプラグインです。2.1.0では「Dashiconsの挿入」を追加しました。HTML編集モードをメインに使用されている方は、お試しあれ。