Понадобилось мне записывать в произвольное поле данные из контента поста. Этот php код можно использовать и для записи данных из парсеров. Для этого нужно будет в этот код подставить другие переменные и значения, но каркас останется и он приведен в качестве примера.
Я уже рассказывал о регулярных выражениях и приводил пример работы PHP функции preg_match. Здесь она тоже будет использоваться.
Код такой:
preg_match("/<h2>(.*?)<\/h2>/s", $post->post_content, $author_name);
$post_id = $GLOBALS['post']->ID;
$book_author_update = get_post_meta( $post->ID, 'book_author', true );
if( empty( $book_author_update) ) {
update_post_meta( $post_id, 'book_author', $author_name[1] );
} ?>
Принцип работы следующий. Сначала мы ищем с помощью preg_match данные в записи между тегами h2. Затем мы создаем переменную book_author_update, которой присваиваем значения произвольного поля с именем book_author. А дальше проверяем, если поле пустое, то записываем в него какие-то данные. Если там уже содержатся данные, то ничего не трогаем.