Home › Forums › Backend Issues (wp-admin) › Saving Default Value to Custom Fields
I have a few Custom Fields with Default Values as “N/A”.
I worked with them and generated around 2000 Posts.
Yesterday I added a few more Custom fields to the group with the same default value as N/A.
Now when Access the post data through a JSON API these are the scenarios I face
It is not practically possible to update 2000 posts, I tried bulk update from all post page. But that actually doesn’t work.
Can you help me?
As I am building an android app, and it crashes when getting data from something that doesn’t exist in the JSON API.
What plugin are you using for the JSON API that you mentioned.
There isn’t any real way to do what you want in ACF unless the API you’re using calls ACF functions. What you need to do is filter the values returned by the JSON API and the best answers for how to do that will come from the documentation and support for that API.
If you want to update all the existing posts to add new fields and remove old fields then that’s going to be a manual process.
You will need to 1) Get all the posts that you want to change. 2) Use delete_post_meta() to delete all the ACF content that you no longer want and 3) Use update_post_meta() to add all the new content.
In steps 2 & 3 don’t forget that you will also need to delete and add the acf field key references.
That’s not a problem with any plugin but with acf itself. If you add new fields with default values to existing pages acf will not return these default values. Default values are only for set them if you are updating a page in the wordpress admin manually. That is the most annoying problem with acf for me 🙁
The way ACF works, it cannot associate a field with a post when getting a field value. get_field() is just a wrapper for get_post_meta() and it is the same for all acf functions. ACF does not know that a field group is related to a certain location except when editing that location.
The location rules are complicated and what your expecting is that ACF will check the location rules for every field group every time you use get_field(). That would be simply impossible, it would time out the load of every page.
ACF is also not going to retroactively find every post, term, or options page that might be associated with a field group when you save the field group. Again, this would be impossible and will likely time out update process.
There are some things in WP that it is not possible to do using the functions that WP supplies. The only way to do these things would be if the developer of ACF build a custom interface to deal with the database and to manage the things that WP is already managing.
As has been said many times in many other posts on this forum. ACF uses existing WP functions. If you did
get_post_meta($post_id, $field_name, true)
and there is nothing stored in that field then it will return nothing. This is all that ACF is doing. If you want there to be a default value then you need to code that default value in.
$value = get_post_meta($post_id, $meta_key, false);
if (!$value) {
$value = 'default value';
}
Hope that helps explain it.
The topic ‘Saving Default Value to Custom Fields’ is closed to new replies.
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 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 Privacy Policy. If you continue to use this site, you consent to our use of cookies.