wp_revisions_to_keep() WP 3.6.0

Визначає, скільки останніх ревізій (змін) слід зберігати в базі даних для конкретного запису (поста).

Це обгортка для:

Значення константи передається перший хук, потім у другий і отримане число (результат) повертається. Тобто. функція спирається значення константи WP_POST_REVISIONSі дозволяє змінити результат через хуки.

Константа WP_POST_REVISIONSзадається у файлі wp-config.php .

WP_POST_REVISIONSможе бути одно:

  • true(за замовчуванням) – зберігається нескінченна кількість ревізій.

    Дефолтне значення константи визначено у файлі /wp-includes/default-constants.php .

  • falseабо 0– ревізії будуть відключені.

  • число– Скільки ревізій зберігати. Якщо вказано 5, то зберігатиметься 5 останніх змін запису.

Підтримка ревізій включається під час реєстрації типу запису register_post_type() . Або окремо через функцію:

post_type_supports( 'post_type', 'revisions' )

Якщо тип запису підтримка ревізій вимкнена, то значення константи WP_POST_REVISIONSобнулюється. Однак, навіть якщо ревізії відключені для типу запису, їх все одно можна увімкнути через хуки, наприклад, для окремого запису. Дивіться приклад 2.

Є ще функція wp_revisions_enabled() – перевірять чи включені ревізії для запису.

1 раз – 0.0005041 сек
(повільно) | 50000 разів – 0.04072 сек
(швидкість світла) |
PHP 7.4.25, WP 5.9

Хуки з функції
wp_revisions_to_keep($post);
$post
(
WP_Post ) (обов’язковий)
Об’єкт запису.

Приклади

0

#1 Дізнаємось скільки ревізій дозволено зберігати записи

На чистій установці WordPress дізнаємося, який ліміт ревізій у першого запису.

// Отримаємо запис з ID=1 $post = get_post(1); // Отримаємо ліміт ревізій для цього запису $qty = wp_revisions_to_keep($post); // Виведе -1, тобто можна зберігати нескінченну кількість ревізій print_r($qty); //> -1
0

#2 Увімкнемо ревізії для окремого запису

Припустимо, у нас є тип запису article, який не підтримує ревізії. Але нам потрібно включити ревізії для одного конкретного запису, наприклад ID 54.

add_filter( 'wp_revisions_to_keep', function( $num, $post ){ if( 54 === $post->ID ){ return -1; } return $num; }, 10, 2);

список змін

З версії 3.6.0Введено.

Код wp_revisions_to_keep() WP 6.0.2

function wp_revisions_to_keep( $post ) { $num = WP_POST_REVISIONS; if ( true === $num ) { $num = -1; } else { $num = (int) $num; } if ( ! post_type_supports( $post->post_type, 'revisions' ) ) { $num = 0; } /** * Filters number revisions to save for given post. * * Overrides the value of WP_POST_REVISIONS. * * @ Since 3.6.0 * * @param int $num Кількість номерів для перегляду. * @param WP_Post $post Post об'єкт. */ $num = apply_filters( 'wp_revisions_to_keep', $num, $post); /** * Filters number revisions to save for given post by its post type. * * Зверніться до значення WP_POST_REVISIONS і {@see 'wp_revisions_to_keep'} filter. * * The dynamic portion of hook name, `$post->post_type`, refers to * the post type slug. * * Possible hook names include: * * - `wp_post_revisions_to_keep` * - `wp_page_revisions_to_keep` * * @ Since 5.8.0 * * @param int $num Кількість номерів для перегляду. * @param WP_Post $post Post об'єкт. */ $num = apply_filters( "wp_{$post->post_type}_revisions_to_keep", $num, $post ); return (int) $num; }

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *