Как заменить в ACF старое Имя поля (ключ) на новое, SQL-запрос

Создание сайта
Комментариев нет

Если Вы имели дело с плагином Advanced Custom Fields (ACF) на CMS WordPress, то возможно сталкивались с такой проблемой. К примеру Вы создали своё custom поле, и ярлык его будет “дата события”, также его имя поля автоматически станет “дата_события”, только через нижнее подчёркивание. Все мы знаем, что на кириллице разрешено использовать это имя поля.

Кстати говоря, при включении и использовании плагина “Cyr-To-Lat”, вместе с ACF, имя поля таки будет автоматически изменено на английские буквы. Видимо так всё же правильнее.

Суть в другом, в ходе экспериментов с этим полем и его выводом, Вы вдруг захотели его заменить и переписали “дата_события” на “event_date“. При этом Вы уже успели создать 100 или 200 записей со старым именем поля. И в итоге при редактировании статьи, Вы обнаружите, что данные этого custom поля снова нужно заполнять, и эти данные пропадут у всех записей.

Всё дело в том, что эти данные (в моём случае это Дата) привязываются к созданному Вами имени поля (или ключу). И это сохраняется в Базе данных. При этом почему-то ACF даже не предупреждает о том, что данные при смене ключа могут исчезнуть, хотя логически они должны сменяться в базе сами.. но этого не происходит..

Конечно же Вы можете вновь все данные заполнить вручную, но думаю этот вараинт мы опустим, и проделаем это быстрее при помощи SQL-запроса.

Для этого мы переходим в PHPMyAdmin (туда можно попасть через Хостинг к примеру).

Выбираем там нужную нам структуру таблицы с нужным сайтом, и нам откроется список таблиц, среди которых будет таблица “wp_postmeta” и остальные. Кажется именно в этой таблице и лежат нужные нам данные с мета-полями от ACF.

Над списком этих таблиц нажимаем SQL, и вводим приведенный ниже запрос, прописав старый ключ и новый ключ.

UPDATE wp_postmeta SET meta_key = ‘new_key_name’ WHERE meta_key = ‘old_key_name’;

UPDATE wp_postmeta SET meta_key = 'new_key_name' WHERE meta_key = 'old_key_name';

также в таблице на самом деле можно встретить имена ключей, где в начале идёт нижнее подчёркивание – “_дата_события“. Поэтому также можно использовать этот запрос:

UPDATE wp_postmeta SET meta_key = '_new_key_name' WHERE meta_key = '_old_key_name';

После применения запроса, таким образом мы заменим старое имя поля (ключ) на новое. И после этого данные в Ваших полях к статьям должны снова выводиться. Если же Вы использовали еще какое то имя поля, то таким же образом сможете его заменить. Если что, в базе есть поиск, и можно поискать.

ACF - имя поля - запрос SQL

Также отмечу, что таким образом мы не засоряем базу старыми ключами, которые не используем, и всё держим под контролем, так что это очень нужная вещь.

Если Вы знаете что делаете, то можете смело использовать запрос, иначе не забудьте сделать BackUp базы.

Ужасно..Плохо..Нормально!Хорошо!Отлично! (Пока оценок нет)
Загрузка...

Поделиться:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *