Функция wp_is_post_revision()
используется для определения, является ли указанная запись ревизией (редакцией) другой записи. Это важный инструмент для разработчиков, работающих с функцией автосохранения и системой версий записей в WordPress.
wp_is_post_revision( int|WP_Post $post ): int|false
Когда в WordPress редактируются записи, создаются ревизии — предыдущие версии записи, которые сохраняются отдельно от основной. Эти ревизии могут быть использованы для восстановления предыдущих состояний. Функция wp_is_post_revision()
проверяет, является ли текущая запись такой ревизией, и возвращает ID родительской записи, если это так. Если запись не является ревизией, функция возвращает false
.
Параметры
- $post (int|WP_Post) (обязательный) — ID записи или объект записи, который нужно проверить.
Возвращаемое значение
- int — ID основной записи, если запись является ревизией.
- false — если запись не является ревизией.
Как это работает
Функция работает с помощью wp_get_post_revision()
, которая проверяет, имеет ли запись ревизии и возвращает ID родительской записи. Это полезно для сценариев, где необходимо различать основную запись от её ревизий.
Пример 1: Проверка, является ли запись ревизией
$post_id = 105; // ID записи
if ( wp_is_post_revision( $post_id ) ) {
// Запись является ревизией
echo "Это ревизия записи!";
} else {
// Запись не является ревизией
echo "Это не ревизия.";
}
Пример 2: Корректировка ID записи перед сохранением метаданных
Этот пример демонстрирует, как можно убедиться, что метаданные добавляются к основной записи, а не к её ревизии.
function add_custom_post_meta( $post_id, $meta_key, $meta_value, $unique = false ) {
// Если текущая запись — ревизия, находим ID основной записи
if ( $parent_id = wp_is_post_revision( $post_id ) ) {
$post_id = $parent_id;
}
return add_metadata('post', $post_id, $meta_key, $meta_value, $unique);
}
В этом примере, если текущая запись является ревизией, функция wp_is_post_revision()
возвращает ID родительской записи. Затем мы заменяем ID ревизии на ID основной записи перед добавлением метаданных.
Заключение
Функция wp_is_post_revision()
— это удобный инструмент для проверки, является ли запись ревизией. Она помогает избежать ненужных операций с ревизиями и позволяет разработчикам управлять данными, которые должны быть применены только к основным версиям записей. Особенно полезна эта функция при работе с метаданными, редактированием и автосохранениями.