Skip to content

Instantly share code, notes, and snippets.

@mwangepatrick
Created July 21, 2023 08:14
Show Gist options
  • Save mwangepatrick/951ecc7775141835eb7a01791f0dc328 to your computer and use it in GitHub Desktop.
Save mwangepatrick/951ecc7775141835eb7a01791f0dc328 to your computer and use it in GitHub Desktop.
Setting up Bidirectional relation across different post types
add_action( 'acf/save_post', 'my_acf_save_post_test' );
function my_acf_save_post_test( $post_id ) {
if ( 'post' == get_post_type( $post_id ) ) {
$my_related_pages = get_field( 'my_related_page', $post_id, false );
error_log(json_encode($my_related_pages));
foreach ( $my_related_pages as $page ) {
// selected page
$related_posts = get_field( 'my_related_post', $page, false );
if(!$related_posts){
update_field( 'my_related_post', array($post_id), $page );
continue;
}
if ( ! in_array( $post_id, $related_posts ) ) {
array_push( $related_posts, $post_id );
update_field( 'my_related_post', $related_posts, $page );
}
}
} elseif ( 'page' == get_post_type( $post_id ) ) {
$my_related_pages = get_field( 'my_related_post', $post_id, false );
error_log(json_encode($my_related_pages));
foreach ( $my_related_pages as $page ) {
// selected page
$related_posts = get_field( 'my_related_page', $page, false );
if(!$related_posts){
update_field( 'my_related_page', array($post_id), $page );
continue;
}
if ( ! in_array( $post_id, $related_posts ) ) {
array_push( $related_posts, $post_id );
update_field( 'my_related_page', $related_posts, $page );
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment