Народ выручайте!!!
Сотворил косяк на живом сайте. Юзеры уже почту завалили гневными вопросами.
Что было: было 12 форм публикаций.
Что сделал: решил первую (дефолтную) форму публикаций сделать стандартной (без доп полей). Ранее там была форма одной из категорий (с произвольными полями). Перенес все данные из первой формы в 13-ю, а в первой удалил все доп поля.
Что стало: теперь абсолютно во всех записях (которые были добавлены с помощью форм WP-Recall) пропали все данные произвольных полей.
Дополнительно зарегистрировал свои произвольные поля для форм в файле функций.
//вывод собственных полей в форме публикации Recall add_filter('rcl_default_public_form_fields','add_default_field_public_form',10,2); function add_default_field_public_form($fields,$post_type){ $fields[] = array( 'type' => 'url', 'slug' => 'wpcf-file_url_mirror', 'title' => 'Запасная ссылка', 'notice' => 'Вы можете указать запасную ссылку, на случай, если первая станет недоступна.' ); $fields[] = array( 'type' => 'text', 'slug' => 'wpcf-game_version', 'title' => 'Версия игры', 'notice' => 'Укажите версию игры, на которой модификация была протестирована.' ); $fields[] = array( 'type' => 'text', 'slug' => 'wpcf-mods_version', 'title' => 'Версия модификации', 'notice' => 'Укажите версию модификации.' ); $fields[] = array( 'type' => 'text', 'slug' => 'wpcf-mods_author', 'title' => 'Автор(ы) модификации', 'notice' => 'Укажите автора мода. Если авторов несколько - укажите их всех, через запятую.' ); $fields[] = array( 'type' => 'radio', 'slug' => 'wpcf-mods_format', 'title' => 'Формат файла', 'required' => true, 'notice' => 'Укажите тип архива с модификацией.', 'values' => array( 'ZIP', 'RAR', '7z', 'PKG', 'SCS' ) ); $fields[] = array( 'type' => 'number', 'slug' => 'wpcf-file_size', 'title' => 'Размер файла', 'required' => true, 'notice' => 'Укажите размер файла в МБ (только цифры).' ); $fields[] = array( 'type' => 'url', 'slug' => 'wpcf-file_url', 'title' => 'Ссылка на файл', 'required' => true, 'notice' => 'Укажите ссылку для скачивания файлов с одного из разрешенных файлообменников.' ); $fields[] = array( 'type' => 'url', 'slug' => 'wpcf-mods_video', 'title' => 'Видео обзор мода', 'notice' => 'Вы можете добавить видео-обзор модификации. Просто вставьте ссылку на YouTube ролик в это поле.' ); return $fields; }
Kerncraft1 сказал(а)
Я смотрю в базе: было поле mods_url, а в базе я не нахожу егоВы не можете просматривать опубликованные ссылкиКак я умудрился все данные произвольных полей грохнуть?
Так вы определитесь - есть ли у вас в бд эти данные. Если нет - тут никто не помощник
Всеже самое верное - открыть базу постмета по id записи - и уже все поля у нее просматривать. Вы же знаете какая запись содержала эти поля?
Пришлось откатываться бекапом. Хорошо, что нашел вчерашнюю копию базы. Однако, сегодня было сделано столько дел, что аж руки опускаются теперь.
Если кому не трудно - поставьте эксперимент на тестовом сайте. Попробуйте также переназначить формы. Что станет с значениями произвольных полей?
Я хоть убейте не понимаю, как они вообще с базы пропасть могли?
Если в форме публикации было удалено поле, то при пересохранении данных формы данные опубликованные через удаленное поле также удаляются, то же самое происходит с произвольными полями пользователя.
Это давняя система, которая работает в плагине уже с давних времен, предохраняет от забивания БД неиспользуемыми данными.
Наверное знать об этой особенности полезно, если взялись проводить манипуляции с формами произвольных полей. Не спорю, может быть это слишком жестоко, но вы первый у кого возникла такая проблема, ранее этот вопрос никогда не поднимался.
Тут выхода два: понять, принять и иметь ввиду в дальнейшем или внести свое предложение по работе этого функционала, постараемся рассмотреть.
А пока приношу извинения за доставленные неудобства.
Я в общем понял ваше разъяснение. Согласен, что наверное надо было задать вопрос на форуме.
А вот у меня еще тогда вопрос: вот удалил я поля в первой форме - удалились их данные. А если часть этих полей в других формах присутствует? Получается, что и от туда значения удаляются? Потому как у меня во всех записях (все 12 форм) пропали данные.
Kerncraft1 сказал(а)
А если часть этих полей в других формах присутствует?
Дельное замечание, получается - да. Как я уже писал, этот функционал присутствует уже очень давно, а в те времена плагин не давал возможности создавать произвольные поля с определенным meta_key, потому предполагалось, что во всех формах поля будут всегда разные, сейчас конечно это не актуально. Видимо надо менять подход к этому вопросу.