Como ativar para salvar a postagem ao atualizar o post meta

Eu tenho uma situação muito confusa. Eu adicionei posts e todas as mensagens metas de um site db para outro, tudo está bem, imagens, título, descrição de posts estão lá.

Mas o post metas não está sendo exibido na página da web (img1), embora eles existam quando eu vou para a página de edição do post no wp-admin (img2), posso ver os dados da postagem, mas eles não estão mostrando até que eu clique para 'Update' botão mesmo.

Depois disso, todos os dados da publicação estão mostrando. (Img3, img4)

Os posts são muito (cerca de 4000 receitas), então não consigo fazer isso manualmente, levará muito tempo.

Então eu preciso de algo para ativar cada atualização de postagem automaticamente.

Eu tentei atualizar o post meta, mas não funciona, ele ainda precisa atualizar a publicação manualmente.

 $metas = get_post_meta(get_the_ID()); foreach($metas as $meta_key => $meta_value){ foreach( $meta_value as $val ){ update_post_meta( get_the_ID(), $meta_key, $val); } } 

Existe uma maneira de fazer isso?

IMG1 img1

IMG2 img2

IMG3 img3

IMG4 img4

Solutions Collecting From Web of "Como ativar para salvar a postagem ao atualizar o post meta"

Eu usei isso para inserir posts com dados ACF / postmeta com sucesso, mas teste-o em um site de desenvolvimento antes de implementar em tempo real, pode haver alguns pressupostos terríveis. Geralmente, assume que você só tem cada nome uma vez, ou seja, “myfield” não existe em dois grupos de campo com diferentes significados.

 $mycustomvalue = 123; $f_mycustomfield = get_acf_key_by_name("mycustomfield"); update_post_meta( $postid, "mycustomfield", $mycustomvalue ); update_post_meta( $postid, "_mycustomfield", $f_mycustomfield["key"] ); function load_acf_names2key() { global $acf_names2key; $acf_names2key = array(); $posts = get_posts(array( 'numberposts' => -1, 'post_type' => 'acf', 'orderby' => 'menu_order title', 'order' => 'asc', 'suppress_filters' => false, )); foreach($posts as $fieldgroup) { $fields = get_post_meta( $fieldgroup->ID ); foreach($fields as $fieldkey => $fieldmeta) { if(substr($fieldkey, 0, 6) == "field_") { $field = get_post_meta( $fieldgroup->ID, $fieldkey); foreach($field as $subfield) { if(!array_key_exists($subfield["name"], $acf_names2key)) $acf_names2key[ $subfield["name"] ] = array(); $subfield[ "group" ] = $fieldgroup->post_name; array_push( $acf_names2key[ $subfield["name"] ], $subfield ); } } } } } function get_acf_key_by_name($name, $options = array()) { global $acf_names2key; if(!$acf_names2key || !is_array($acf_names2key) || count($acf_names2key) == 0) { load_acf_names2key(); } if(!array_key_exists($name, $acf_names2key)) return false; foreach($acf_names2key[ $name ] as $possible) { foreach($options as $key => $val) { if(preg_match("!^/.*/i?$!", $val)) { if(!preg_match($val, $possible[ $key ])) { continue 2; } } else if($possible[ $key ] != $val) { continue 2; } } # no options? this will return the first one # has options? will return the first item that # satisfies all options return $possible; } return false; } 

Já faz um bom tempo desde que escrevi isso e a memory me falha o que exatamente eu queria fazer com as $ opções que podem ser passadas para get_acf_key_by_name (ou se eu apenas get_acf_key_by_name colar esse código de algum lugar), mas sempre funcionou para mim. Não tentei trabalhar com campos de repetição, de modo que talvez seja um desafio, mas tente.