WordPress: Ошибка обновления. Не удалось обновить запись в базе данных

Несколько дней назад мой сайт отказался работать. В саппорте сказали, что тема оформления критически устарела.

Тема Вашего сайта требует mysql функцию, а её нет выше php 5.6 на новых серверах. А сама cms не работает на php 5.6.

Нужно обновить тему Вашего сайта, чтобы у нее была поддержка mysqli. По этому вопросу можно обратиться к разработчику.

Саппорт.

Делать нечего, поставил новую тему, начал настраивать и обнаружил, что несколько старых постов невозможно отредактировать. Вордпресс пишет: «Ошибка обновления. Не удалось обновить запись в базе данных» при попытке сохранения.

Долго ковырялся и искал решение, пока не догадался. Проблема проявляется в постах, содержащих эмодзи. Если убрать из поста все эмодзи, он отлично сохраняется. Но на самом деле, удалять эмодзи не нужно, проблема решается элегантнее.

Открываем:

ваш домен → wp-content → themes → название вашей темы → functions.php

И вставляем туда:

add_filter( 'wp_insert_post_data', function( $data, $postarr ) {
if ( ! empty( $data['post_content'] ) ) {
    $data['post_content'] = wp_encode_emoji( $data['post_content'] );
}
return $data;
}, 99, 2 );

Готово, вы восхитительны, вордпресс научился сохранять посты с эмодзи.


Опубликовано

в

от

Если хотите получать новые посты на имейл, подпишитесь на рассылку. Пишу нечасто и по делу. 

Предыдущий пост
Большое исследование зарплат менеджеров проектов в 2023 году. Спасибо Артёму…