wp_suspend_cache_addition() WP 3.3.0

Тимчасово зупиняє додавання об’єктів до об’єктного кешу.

Функція дозволяє зупинити роботу об’єктного кешування, яке використовується у WordPress. Але при цьому вже наявні дані в кеші не видаляються і їх можна отримати як завжди.

Може бути корисною при імпорті великих масивів даних, щоб не забивати пам’ять при обробці одноразового скрипту.

Зупинка кешу працює лише для поточного запиту (на час поточної генерації сторінки).

Якщо після скрипту потрібно ще щось зробити в PHP, не забудьте викликати функцію ще раз без параметрів wp_suspend_cache_addition() , щоб увімкнути об’єктне кешування після відключення. Без об’єктного кешу продуктивність WordPress дуже знижується.

Дивіться також корисну функцію для імпорту великих даних:

Хуків немає.

Повертає

true|false. Поточний статус припинення кешування.

Використання

wp_suspend_cache_addition ($ suspend);
$ suspend
(true/false)
  • trueЗупинить додавання об’єктів в кеш.
  • falseВключить кешування.

Типово: null

Приклади

0

#1 Демонстрація відключення та включення об’єктного кешування

wp_suspend_cache_addition (true); // відключаємо кешування

// робимо що небудь

wp_suspend_cache_addition(false); // Включаємо кешування
0

#2 Тимчасова зупинка об’єктного кешування

Розглянемо випадок, коли зупинка об’єктного кешування вирішує проблему переповнення пам’яті, а при імпорті даних у WP зустрічається дуже часто.

Допустимо, ми імпортуємо великий масив даних у WordPress. Наприклад, нам потрібно заповнити таблицю записів з іншої бази даних, або CSV файлу, або API. Для цього ми маємо код, в якому ми використовуємо функцію додавання записів wp_update_post() . Ці функції після додавання запису БД, додає дані в кеш, щоб потім отримати їх без додаткового запиту. Але нам не потрібне кешування при імпорті, тому що за замовчуванням кеш записується в оперативну пам’ять і в результаті імпорту може не вистачити.

Тому, щоб імпорт працював як потрібно, потрібно вимкнути кеш до імпорту та включимо його після:

// запам'ятаємо поточний стан (це приклад, що так теж можна робити)
$was_suspended = wp_suspend_cache_addition();

// відключаємо кешування
wp_suspend_cache_addition (true);

// ЗДІЙ ВАШ КІД ІМПОРТУ. Об'єктне кешування тут уже не працює

// Повернемо колишній стан кешу назад
wp_suspend_cache_addition( $was_suspended );

Посилання по темі:

список змін

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

Код wp_suspend_cache_addition() WP 6.0.2

function wp_suspend_cache_addition( $suspend = null ) {
	static $_suspend = false;

	if ( is_bool ( $ suspend ) ) {
		$_suspend = $ suspend;
	}

	return $_suspend;
}

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

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