PodsAPI::lookup_related_items_from PHP Method

    public function lookup_related_items_from($field_id, $pod_id, $id, $field = null, $pod = null)
    {
        $related_ids = false;
        $id = (int) $id;
        $tableless_field_types = PodsForm::tableless_field_types();
        if (empty($id) || !in_array(pods_v('type', $field), $tableless_field_types)) {
            return false;
        }
        $related_pick_limit = 0;
        if (!empty($field)) {
            $options = (array) pods_var_raw('options', $field, $field, null, true);
            $related_pick_limit = (int) pods_v('pick_limit', $options, 0);
            if ('single' == pods_var_raw('pick_format_type', $options)) {
                $related_pick_limit = 1;
            }
        }
        if (!pods_tableless()) {
            $field_id = (int) $field_id;
            $sister_id = (int) pods_var_raw('sister_id', $field, 0);
            $related_where = "\n                `field_id` = {$field_id}\n                AND `related_item_id` = {$id}\n            ";
            $sql = "\n                SELECT *\n                FROM `@wp_podsrel`\n                WHERE\n                    {$related_where}\n                ORDER BY `weight`\n            ";
            $relationships = pods_query($sql);
            if (!empty($relationships)) {
                $related_ids = array();
                foreach ($relationships as $relation) {
                    if ($field_id == $relation->field_id && !in_array($relation->item_id, $related_ids)) {
                        $related_ids[] = (int) $relation->item_id;
                    } elseif (0 < $sister_id && $field_id == $relation->related_field_id && !in_array($relation->related_item_id, $related_ids)) {
                        $related_ids[] = (int) $relation->related_item_id;
                    }
                }
            }
        } else {
            // @todo handle meta-based lookups
            return false;
            if (!is_array($pod)) {
                $pod = $this->load_pod(array('id' => $pod_id, 'table_info' => false), false);
            }
            if (!empty($pod) && in_array($pod['type'], array('post_type', 'media', 'taxonomy', 'user', 'comment', 'settings'))) {
                $related_ids = array();
                $meta_type = $pod['type'];
                if (in_array($meta_type, array('post_type', 'media'))) {
                    $meta_type = 'post';
                } elseif ('taxonomy' == $meta_type) {
                    $meta_type = 'term';
                }
                $no_conflict = pods_no_conflict_check('term' == $meta_type ? 'taxonomy' : $meta_type);
                if (!$no_conflict) {
                    pods_no_conflict_on('term' == $meta_type ? 'taxonomy' : $meta_type);
                }
                if ('settings' == $meta_type) {
                    $related_id = get_option('_pods_' . $pod['name'] . '_' . $field['name']);
                    if (empty($related_id)) {
                        $related_id = get_option($pod['name'] . '_' . $field['name']);
                    }
                    if (is_array($related_id) && !empty($related_id)) {
                        foreach ($related_id as $related) {
                            if (is_array($related) && !empty($related)) {
                                if (isset($related['id'])) {
                                    $related_ids[] = (int) $related['id'];
                                } else {
                                    foreach ($related as $r) {
                                        $related_ids[] = (int) $r;
                                    }
                                }
                            } else {
                                $related_ids[] = (int) $related;
                            }
                        }
                    }
                } else {
                    $related_id = get_metadata($meta_type, $id, '_pods_' . $field['name'], true);
                    if (empty($related_id)) {
                        $related_id = get_metadata($meta_type, $id, $field['name']);
                    }
                    if (is_array($related_id) && !empty($related_id)) {
                        foreach ($related_id as $related) {
                            if (is_array($related) && !empty($related)) {
                                if (isset($related['id'])) {
                                    $related_ids[] = (int) $related['id'];
                                } else {
                                    foreach ($related as $r) {
                                        if (isset($related['id'])) {
                                            $related_ids[] = (int) $r['id'];
                                        } else {
                                            $related_ids[] = (int) $r;
                                        }
                                    }
                                }
                            } else {
                                $related_ids[] = (int) $related;
                            }
                        }
                    }
                }
                if (!$no_conflict) {
                    pods_no_conflict_off('term' == $meta_type ? 'taxonomy' : $meta_type);
                }
            }
        }
        if (is_array($related_ids)) {
            $related_ids = array_unique(array_filter($related_ids));
        }
        return $related_ids;
    }