Home Forums General Issues Trying to get group field with get_post_meta inside function.php Reply To: Trying to get group field with get_post_meta inside function.php

  • Whether or not ACF functions need more queries is more complex then not using get_post_meta().

    For example that function get_field() is only a wrapper for get_post_meta().

    get_post_meta() will cause a query to be done for any meta field that is not already cached.

    Also, whether or not it creates any additional queries depends on if WP has already cached the meta values for the post. WP in many cases does this automatically. If the values are not cached for the post and getting fields is causing additional queries then you can force WP to get all meta values for a post in a single query by calling get_post_meta() without a meta key get_post_meta($post_id). This will not only speed up using ACF functions but it will also increase the performance of get_post_meta() for individual meta keys. I’m going to be honest with you on this though, I am not completely sure when WP does and does not automatically get all post meta values. In short, performance issues are not necessarily attributed to just using ACF functions.

    There are some fields that will decrease performance depending on how they are used. For example image fields, relationship fields, post object fields, and other fields that can return WP objects of any type like posts, terms, etc. These perform extra queries to get these objects. To increase performance it is usually best for these types of fields to get ID values only and then use WP functions to get only what you need.

    Performance issues, as with many things, are a result of how something is used and not that it is at all. Avoiding the use of ACF functions only means that you’re going to need to do all the work yourself if you need formatted values returned for anything that is not a simple text value.