Home › Forums › General Issues › How can i update my subfields
Hello. I try to update my subfields but nothing hapens. This code print field value but it cant update the field.
function some_field_update(){
if( have_rows('main_specifications', 20735) ):
while ( have_rows('main_specifications', 20735) ) : the_row();
echo get_sub_field('colors') . '<br>';
if (update_sub_field('colors', 'some value', 20735)){
echo 'successful';
}else{
echo 'false';
}
endwhile;
else :
echo 'no rows found';
endif;
}
add_action('init', 'some_field_update');
i pasted it into functions.php. ACF Version is 5.8.12.
have you tried
update_sub_field('colors', 'some value') // no post id needed here when in loop
other than this I don’t see anything wrong with the code you supplied. If this does not fix the issue then you’ll need to explain better what you are trying to accomplish.
Thanks, yes i tried this approach and it doesn’t work for me. I updated these fields with update_post_meta
but now i can see these fields values only on post edit page. And function get_fields
cant get their values. If i click update post then function works correctly. But i cant update all the posts using this approach, there are about 8000 posts.
I used this code to update the fields
function some_field_update(){
$my_posts = new WP_Query;
$myposts = $my_posts->query( array(
'post_type' => 'product',
'posts_per_page' => 10000,
) );
foreach( $myposts as $pst ){
if ($pst){
update_post_meta($pst->ID, 'main_specifications_colors', get_post_meta($pst->ID, 'colors')[0]);
}
}
}
add_action('init', 'some_field_update');
And this code i use to display the values
$fields = get_fields($product_id);
?>
<?php if( $fields ): ?>
<?php foreach( $fields as $name => $value ):
$field = get_field($name, $product_id);
if (array_filter($field)){
echo '<h2>'.ucwords(str_replace('_', ' ', $name)).':</h2>';
echo '<table>';
foreach ($field as $key => $val){
if($val){
echo '<tr><td>'. ucwords(str_replace('_', ' ', $key)).': </td>';
echo '<td>'. ucwords(str_replace('_', ' ', $val)).'</td></tr>';
}
}
echo '</table>';
}
?>
<?php endforeach; ?>
<?php endif;
You must be logged in to reply to this topic.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We demoed ACF 6.1 Beta during the most recent session of ACF Chat Fridays, highlighting the new ability to regenerate and clear labels, setting the Admin Menu Parent as a slug, and more. Catch the video replay in our latest summary. https://t.co/rHEpPVas64 pic.twitter.com/hB1XKTexXi
— Advanced Custom Fields (@wp_acf) March 23, 2023
© 2023 Advanced Custom Fields.
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Cookie Policy. If you continue to use this site, you consent to our use of cookies.