概要
wp_get_post_revisions 関数は、指定された投稿のリビジョン情報を取得するために使用されます。この関数は、過去のバージョンを参照したり、比較したりする際に便利です。具体的には、以下のような機能を実装する際に使用されることが多いです。
- 投稿の履歴を表示する
- 過去のリビジョン間での差分チェック
- 管理画面でリビジョンの一覧表示
- 特定のリビジョンに基づく投稿の復元
- リビジョンごとのメタデータ表示
- 投稿編集時の自動保存履歴の解析
- プラグインによるリビジョン管理機能の拡張
- テーマ開発時の投稿履歴機能の実装
構文
wp_get_post_revisions( int $post_id, array $args = array() );
パラメータ
post_id(int): リビジョンを取得したい投稿のID。args(array, optional): リビジョンの取得に関するオプション引数。
戻り値
- 取得したリビジョンの配列または空の配列。
関連する関数
使用可能なバージョン
この関数は WordPress 3.6.0 以降で利用可能です。
コアファイルのパス
wp-includes/post.php
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
サンプルコード1: 一般的なリビジョンの取得
このコードは、投稿IDからすべてのリビジョンを取得し、タイトルを表示します。
$post_id = 123; // 取得したい投稿のID
$revisions = wp_get_post_revisions($post_id);
foreach ($revisions as $revision) {
echo '<h2>' . get_the_title($revision->ID) . '</h2>';
}
サンプルコード2: リビジョン数の制限付き取得
このコードは、投稿のリビジョンを取得し、最新の5件のリビジョンを表示します。
$post_id = 123; // 取得したい投稿のID
$args = array('numberposts' => 5);
$revisions = wp_get_post_revisions($post_id, $args);
foreach ($revisions as $revision) {
echo '<h2>' . get_the_title($revision->ID) . '</h2>';
}
サンプルコード3: 特定のリビジョンの取得
このコードは、特定のリビジョンIDを使用して、そのリビジョンの内容を表示します。
$revision_id = 456; // 取得したいリビジョンのID
$revision = wp_get_post_revision($revision_id);
if ($revision) {
echo '<h2>' . get_the_title($revision->ID) . '</h2>';
echo '<div>' . apply_filters('the_content', $revision->post_content) . '</div>';
}
サンプルコード4: リビジョンのメタデータ表示
このコードは、リビジョンのメタデータを取得して表示します。
$post_id = 123; // 取得したい投稿のID
$revisions = wp_get_post_revisions($post_id);
foreach ($revisions as $revision) {
echo '<h2>' . get_the_title($revision->ID) . '</h2>';
echo '<p>' . get_post_meta($revision->ID, '_edit_last', true) . '</p>'; // 最終編集者
}
サンプルコード5: リビジョンの復元
このコードは、リビジョンを復元するための簡単な実装例です。
$revision_id = 456; // 復元したいリビジョンのID
$revision = wp_get_post_revision($revision_id);
if ($revision) {
// 投稿を復元する
wp_update_post(array(
'ID' => $revision->ID,
'post_content' => $revision->post_content,
));
}