Ревизии (revisions)

Эти маршруты позволяют получить/удалить ревизии записей.

Возможные маршруты (конечные точки маршрутов описаны ниже):

/wp/v2/posts/{parent}/revisions       // получает ревизии указанной в {parent} записи
/wp/v2/posts/{parent}/revisions/{ID}  // получает указанную в {ID} ревизию записи

Класс контроллера: WP_REST_Revisions_Controller{}

Схема ресурса

Схема показывает все поля, которые существуют для объекта запись: поля объекта которые вернет запрос.

Параметр Контекст Описание
author
число
view, edit, embed ID автора объекта.
date
строка
view, edit, embed Дата публикации объекта, по временной зоне сайта.
date_gmt
строка
view, edit Время публикации объекта, по GMT.
guid
объект
view, edit Глобальный уникальный идентификатор для объекта.
id
число
view, edit, embed Уникальный идентификатор для объекта.
modified
строка
view, edit Дата последнего изменения объекта, по временной зоне сайта.
modified_gmt
строка
view, edit Дата последнего изменения объекта, в GMT.
parent
число
view, edit, embed ID родителя объекта.
slug
строка
view, edit, embed Буквенно-цифровой идентификатор для объекта уникальный для его типа.
title
объект
view, edit, embed Название для объекта.
content
объект
view, edit Содержимое объекта.
excerpt
объект
view, edit, embed Отрывок объекта.

wp/v2/posts/{parent}/revisions

Запрос OPTIONS к маршруту вернет полное описание этого маршрута: эндпоинты их параметры, схему.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/posts/{parent}/revisions
GitHub
{
    "namespace": "wp/v2",
    "methods": [
        "GET"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "parent": {
                    "required": false,
                    "description": "ID родителя объекта.",
                    "type": "integer"
                },
                "context": {
                    "required": false,
                    "default": "view",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "description": "Рамки в которых сделан запрос, определяют поля в ответе.",
                    "type": "string"
                }
            }
        }
    ],
    "schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "post-revision",
        "type": "object",
        "properties": {
            "author": {
                "description": "ID автора объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "date": {
                "description": "Дата публикации объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "date_gmt": {
                "description": "Время публикации объекта, по GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "guid": {
                "description": "Глобальный уникальный идентификатор для объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true,
                "properties": {
                    "raw": {
                        "description": "GUID для объекта, как он существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ],
                        "readonly": true
                    },
                    "rendered": {
                        "description": "GUID для объекта, преобразованный для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    }
                }
            },
            "id": {
                "description": "Уникальный идентификатор для объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "modified": {
                "description": "Дата последнего изменения объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "modified_gmt": {
                "description": "Дата последнего изменения объекта, в GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "parent": {
                "description": "ID родителя объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "slug": {
                "description": "Буквенно-цифровой идентификатор для объекта уникальный для его типа.",
                "type": "string",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "title": {
                "description": "Название для объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "properties": {
                    "raw": {
                        "description": "Название объекта как оно существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML название объекта, преобразованное для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "content": {
                "description": "Содержимое объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": {
                    "raw": {
                        "description": "Содержимое объекта как оно существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML содержимое объекта преобразованное для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    },
                    "protected": {
                        "description": "Защищено ли содержимое паролем.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "excerpt": {
                "description": "Отрывок объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "properties": {
                    "raw": {
                        "description": "Отрывок объекта как он существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML отрывок объекта, преобразованный для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    },
                    "protected": {
                        "description": "Защищать ли паролем отрывок.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            }
        }
    }
}

Список редакций записи

Алгоритм схож с работой функции wp_get_post_revisions().

Вид запроса

Доступ: публичный

GET /wp/v2/posts/{parent}/revisions

Параметры запроса

parent(число)
ID записи, ревизии которой нужно получить. Указывается в маршруте.
context(строка)
Область, в которой выполняется запрос; определяет поля присутствующие в ответе.
Может быть: view, embed, edit
По умолчанию: view

Пример запроса

$ curl http://demo.wp-api.org/wp-json/wp/v2/posts/72/revisions
[
	{
		"author": 1,
		"date": "2018-08-03T22:11:48",
		"date_gmt": "2018-08-03T22:11:48",
		"id": 97,
		"modified": "2018-08-03T22:11:48",
		"modified_gmt": "2018-08-03T22:11:48",
		"parent": 72,
		"slug": "72-revision-v1",
		"guid": {
			"rendered": "http://example.com/72-revision-v1/"
		},
		"title": {
			"rendered": "Заголовок записи"
		},
		"content": {
			"rendered": "контент записи"
		},
		"excerpt": {
			"rendered": ""
		},
		"_links": {
			"parent": [
				{
					"href": "http://example.com/wp-json/wp/v2/posts/72"
				}
			]
		}
	},
	{ ... },
	{ ... },
]

wp/v2/posts/{parent}/revisions/{id}

Запрос OPTIONS к маршруту вернет полное описание этого маршрута: эндпоинты их параметры, схему.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/posts/{parent}/revisions/{id}
GitHub
{
    "namespace": "wp/v2",
    "methods": [
        "GET",
        "DELETE"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "parent": {
                    "required": false,
                    "description": "ID родителя объекта.",
                    "type": "integer"
                },
                "id": {
                    "required": false,
                    "description": "Уникальный идентификатор для объекта.",
                    "type": "integer"
                },
                "context": {
                    "required": false,
                    "default": "view",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "description": "Рамки в которых сделан запрос, определяют поля в ответе.",
                    "type": "string"
                }
            }
        },
        {
            "methods": [
                "DELETE"
            ],
            "args": {
                "parent": {
                    "required": false,
                    "description": "ID родителя объекта.",
                    "type": "integer"
                },
                "id": {
                    "required": false,
                    "description": "Уникальный идентификатор для объекта.",
                    "type": "integer"
                },
                "force": {
                    "required": false,
                    "default": false,
                    "description": "Должно быть истинно, так как ревизии не поддерживают перемещение в корзину. ",
                    "type": "boolean"
                }
            }
        }
    ],
    "schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "post-revision",
        "type": "object",
        "properties": {
            "author": {
                "description": "ID автора объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "date": {
                "description": "Дата публикации объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "date_gmt": {
                "description": "Время публикации объекта, по GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "guid": {
                "description": "Глобальный уникальный идентификатор для объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true,
                "properties": {
                    "raw": {
                        "description": "GUID для объекта, как он существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ],
                        "readonly": true
                    },
                    "rendered": {
                        "description": "GUID для объекта, преобразованный для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    }
                }
            },
            "id": {
                "description": "Уникальный идентификатор для объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "modified": {
                "description": "Дата последнего изменения объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "modified_gmt": {
                "description": "Дата последнего изменения объекта, в GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "parent": {
                "description": "ID родителя объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "slug": {
                "description": "Буквенно-цифровой идентификатор для объекта уникальный для его типа.",
                "type": "string",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "title": {
                "description": "Название для объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "properties": {
                    "raw": {
                        "description": "Название объекта как оно существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML название объекта, преобразованное для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "content": {
                "description": "Содержимое объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": {
                    "raw": {
                        "description": "Содержимое объекта как оно существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML содержимое объекта преобразованное для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    },
                    "protected": {
                        "description": "Защищено ли содержимое паролем.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "excerpt": {
                "description": "Отрывок объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "properties": {
                    "raw": {
                        "description": "Отрывок объекта как он существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML отрывок объекта, преобразованный для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    },
                    "protected": {
                        "description": "Защищать ли паролем отрывок.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            }
        }
    }
}

Получение отдельной редакции записи

Алгоритм схож с работой функции get_post().

Вид запроса

Доступ: публичный

GET /wp/v2/posts/{parent}/revisions/{id}

Параметры запроса

parent(число)
ID записи, ревизию которой нужно получить. Указывается в маршруте.
id(число)
ID ревизии. Указывается в маршруте.
context(строка)
Область, в которой выполняется запрос; определяет поля присутствующие в ответе.
Может быть: view, embed, edit
По умолчанию: view

Пример запроса

$ curl http://example.com/wp-json/wp/v2/posts/72/revisions/97
{
	"author": 1,
	"date": "2018-08-03T22:11:48",
	"date_gmt": "2018-08-03T22:11:48",
	"id": 97,
	"modified": "2018-08-03T22:11:48",
	"modified_gmt": "2018-08-03T22:11:48",
	"parent": 72,
	"slug": "72-revision-v1",
	"guid": {
		"rendered": "http://example.com/72-revision-v1/"
	},
	"title": {
		"rendered": "Заголовок записи"
	},
	"content": {
		"rendered": "контент записи"
	},
	"excerpt": {
		"rendered": ""
	},
	"_links": {
		"parent": [
			{
				"href": "http://example.com/wp-json/wp/v2/posts/72"
			}
		]
	}
}

Удаление редакции записи

Алгоритм схож с работой функции wp_delete_post_revision().

Вид запроса

Доступ: нужна авторизация

DELETE /wp/v2/posts/{parent}/revisions/{id}

Параметры запроса

parent(число)
ID записи, ревизию которой нужно получить. Указывается в маршруте.
id(число)
ID ревизии. Указывается в маршруте.
force
Всегда должен быть true, так как ревизии не поддерживают корзину.
По умолчанию: false

Пример запроса

$ curl -X DELETE http://example.com/wp-json/wp/v2/posts/72/revisions/97

Ошибка: не указан параметр force=true:

{
	"code": "rest_trash_not_supported",
	"message": "Ревизии нельзя переместить в корзину. Установите 'force=true' для удаления.",
	"data": {
		"status": 501
	}
}

Укажем нужный параметр:

$ curl -X DELETE http://example.com/wp-json/wp/v2/posts/72/revisions/97?force=true
{
	"deleted": true,
	"previous": {
		"author": 1,
		"date": "2018-08-03T22:11:48",
		"date_gmt": "2018-08-03T22:11:48",
		"id": 97,
		"modified": "2018-08-03T22:11:48",
		"modified_gmt": "2018-08-03T22:11:48",
		"parent": 72,
		"slug": "72-revision-v1",
		"guid": {
			"rendered": "http://example.com/72-revision-v1/"
		},
		"title": {
			"rendered": "Заголовок записи"
		},
		"content": {
			"rendered": "контент ревизии"
		},
		"excerpt": {
			"rendered": ""
		}
	}
}