WordPress: получить значение настраиваемого поля перед обновлением сообщения

Что я хочу сделать: в WordPress, когда я редактирую значение настраиваемого поля сообщения, получаю старое значение и новое значение и сравниваю их.

Что я получаю сейчас: я могу получить только новое значение. Я подключаюсь к действию pre_post_update и использую get_post_meta() (и кучу связанных функций, описанных в http://codex.wordpress.org/Custom_Fields), чтобы получить значение.

Я также пробовал get_post(), который может возвращать старое значение post_content, post_title и т. д. Но get_post() не включает значения настраиваемых полей.

Я думаю, что на момент срабатывания хука pre_post_update значения еще не были сохранены в базе данных, не так ли? Тот факт, что я могу получить старое значение заголовка сообщения и т. д., доказывает это. Тогда должен быть какой-то способ получить старое значение настраиваемых полей.

Также приветствуется, если вы можете указать другие способы сравнения старого значения и нового значения настраиваемых полей.

Спасибо заранее.


person Betty    schedule 28.11.2011    source источник
comment
Я тоже хочу это сделать - я думал о запросе базы данных до обновления нового значения в запросе save_post. Кажется немного избыточным, поэтому я все еще ищу лучший метод.   -  person Jacob Raccuia    schedule 09.04.2015


Ответы (2)


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

person bingjie2680    schedule 28.11.2011
comment
Как я уже сказал в исходном сообщении, я хочу перехватить действие до того, как значения будут сохранены в базе данных. Вы хотите сказать, что в WordPress нет такого хука? - person Betty; 28.11.2011
comment
Насколько я знаю, нет. возможно, вы можете попробовать получить доступ к БД в своей функции pre_update_post. - person bingjie2680; 28.11.2011
comment
Непосредственное управление базой данных мне не нравится (я новичок в БД ›_‹). Я попробую поиграть с вашим методом с двумя ключами, чтобы посмотреть, сможет ли он удовлетворить мои потребности. В любом случае, спасибо. - person Betty; 28.11.2011
comment
:),,хорошо, если возникнут вопросы, я буду рад помочь вам в дальнейшем. - person bingjie2680; 28.11.2011

Вы не можете сравнить старое настраиваемое поле с новым, потому что при их обновлении оно будет перезаписано и в таблице "wp_post_meta" в БД. Вы теряете старое значение для нового.

person Pigi    schedule 28.11.2011