p2p_to; }, $p2p_res); $related_from_ids = array_map(function($post) { return (int)$post->p2p_from; }, $p2p_res); $unfiltered = array_merge($related_to_ids, $related_from_ids); $deduped = array_unique($unfiltered); return array_diff( $deduped, array($id_to_remove) ); } function prepare_related_items($args) { // Rearrange what fields get shown $collection = array(); forEach( get_posts($args) as $item ) { $collection[$item->ID] = default_post_format($item, true); } return $collection; } function p2p_related_to($id, $type) { global $wpdb; $to_type = '%_to_' . $type; $from_type = $type . '_to_%'; $res = $wpdb->get_results($wpdb->prepare( "SELECT * FROM wp_p2p WHERE p2p_from = %d OR p2p_to = %d", $id, $id )); $related_posts_ids = grab_ids_related_to_and_from($id, $res); // Use IDs to get posts from the wpdb $args = array( 'numberposts' => -1, 'post_type' => 'any', 'include' => $related_posts_ids ); wp_reset_postdata(); return prepare_related_items($args); } ?>