Hi folks!
I didn’t know, which forum is the right one for this (and it seems there is no Github repo), so please move the thread if needed. 🙂
As I was trying to pass custom data to the acf/fields/post_object/query filter I stumbled upon the prepare_for_ajax JS filter. So I’ve done the following in JS:
acf.add_filter('prepare_for_ajax', function (args) {
args.post__not_in = [1,2,3,4];
return args;
});
This will pass the post__not_in argument correctly to the ajax_query() in post_object.php. From there via $_POST to the get_choices method.
Now there’s the part, which seems a bit weird to me, as the passed arguments can’t be used further.
The method get_choices accepts one argument $options. These options are getting parsed via acf_parse_args() but the keys of the $options array are never used again just for filling a handful of fix args. Instead, a new array $args is created and filled with the results from the previous options array. Instead of creating a new $args array, the $options array could have be named $args and everything should work as expected (except for the “polluting variables” like field_key or post_id).
Then you could adjust the args via JS instead of the need for another filter. – But maybe this will result in confusion as you don’t really expect the WP_Query args are set via JS.
The other solution would be (maybe faster and less code-changing) to pass the $options array as the fourth argument in the filters.
// filters
$args = apply_filters('acf/fields/post_object/query', $args, $field, $options['post_id'], $options);
$args = apply_filters('acf/fields/post_object/query/name=' . $field['name'], $args, $field, $options['post_id'], $options);
$args = apply_filters('acf/fields/post_object/query/key=' . $field['key'], $args, $field, $options['post_id'], $options);
Then I’m able to adjust everything as needed.
These are my thoughts about this. I would be happy to get some feedback 🙂
Regards!
Fabian

Hi @fabianmarz,
Thanks for the feedback.
I would however recommend that you open a new ticket at [email protected] so as to reach Elliot faster since he rarely monitors the forum.
The topic ‘Custom data for post_object via prepare_for_ajax’ 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.