Intereting Posts
Предотвращение удаления / перемещения главной страницы в корзину Все мои пользовательские сообщения – 404 Комментарий Имя автора в форме ответа Как я могу это сделать, чтобы на странице «Добавить новую почту» параметр «Видимость» был установлен «Приватный» по умолчанию? Получить заказ пользователей с помощью мета-ключа с ограничением wp_postmeta обновляется только для одной страницы Виджет с категориями не работает – ссылки перенаправляются в блог-бросок Получить несколько ролей с помощью get_users preg_replace style attr в $ content и редактирование post_content перед сохранением Подтверждение перед удалением параметров плагина с помощью uninstall.php Как создать отдельную страницу для каждого автора? xypic на WordPress string translation in functions.php не работает Отображать номер страницы в пользовательской функции заголовка страницы. Изменить уведомление об автоматическом обновлении администратора

Функция обновления post_meta на основе существующей post_meta

У меня есть пользовательский тип сообщения для адресов на карте Google. Одно мета-поле для адреса, но я хочу преобразовать этот адрес в долготу / широту. Поэтому у меня есть мета-поле для долготы и один для широты.

Я создал функцию в моем цикле, чтобы обновить постмету долготы и широты на основе адреса postmeta. Вот функция:

function geocode_spot_address ($post_ID) { $address = get_post_meta($post_ID,'spots_address',true); $address = str_replace(' ', '+', $address); $address = 'http://maps.google.com/maps/geo?q=1020+' . $address . '&output=xml'; $result = file_get_contents($address); $xml = new SimpleXMLElement($result); list($longitude, $latitude, $altitude) = explode(",",$xml->Response->Placemark->Point->coordinates); update_post_meta($post_ID, 'spots_longitude', $longitude); update_post_meta($post_ID, 'spots_latitude', $latitude); return $post_ID; } 

Это отлично работает, когда я обновляю страницу, которую я вызываю в цикле, и передаю идентификатор сообщения:

 geocode_spot_address($post->ID); 

Для жизни меня, однако, я не могу заставить это работать, пытаясь заставить его обновить долготу / широту в post save / publish / update, подключив функцию к:

 add_action('save_post', 'geocode_spot_address', 1, 2); 

Я, очевидно, просто хочу ввести адрес улицы, затем сохранить / опубликовать / обновить, запустить ли эту функцию и добавить долготу / широту в соответствующие мета-поля.

Любая помощь будет оценена по достоинству.

FWIW Я использую структуру Meta Box от Rilwis для создания моих настраиваемых типов сообщений и мета-полей.

Solutions Collecting From Web of "Функция обновления post_meta на основе существующей post_meta"