Home › Forums › Feature Requests › Restrict Relationship Fields Choices to Current User
To build multi-user webapps with acf_form() there is a need of an option to restrict the relationship fields posts/choices to the current logged-in user.
This solves it.
http://www.advancedcustomfields.com/resources/acf-fields-relationship-query/
function my_relationship_query( $args, $field, $post ) {
// get posts for current logged in user
$args['author'] = get_current_user_id();
return $args;
}
add_filter('acf/fields/relationship/query/key=<field_key>', 'my_relationship_query', 10, 3);
should this go in functions.php? I add the field_key and could not get it to work (shows all posts, or CPT)
I also tried name with similar results.
I hate writing this because I know this isn’t a lot to go on. Any idea of what I could look at?
After attempting to use more basic functions, I can’t seem to use any of them. if I use the_field the page crashes immediately as it’s called. I’m sure I’m missing something very basic.
Hi folk,
I had the quite similar issue. I needed also to grant a full access to “editor” & “administrator”.
Here is the code inserted in the functions.php
file
function modify_field( $args, $field,$post) {
if( !check_user_role(array('editor','administrator')) ){
$args['author'] = get_current_user_id();
}
return $args;
}
add_filter( 'acf/fields/post_object/query/key=field_XXX..XXX', 'modify_field', 10, 3 );
/* @src & @credits https://wp-mix.com/wordpress-check-user-roles/ */
function check_user_role($roles, $user_id = null) {
if ($user_id) $user = get_userdata($user_id);
else $user = wp_get_current_user();
if (empty($user)) return false;
foreach ($user->roles as $role) {
if (in_array($role, $roles)) {
return true;
}
}
return false;
}
use “name” instead of “key” like this
add_filter(‘acf/fields/relationship/query/name=<field_key>’, ‘my_relationship_query’, 10, 3);
Thank you i searched a lot finally found how to do it!
Is there a chance to additionally modify the function to only return the posts which are publish? So a combination of only posts of current author id and only published posts of that author?
thanks
The topic ‘Restrict Relationship Fields Choices to Current User’ 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.