/** * Attempts to retrieve an EE_Person any way it can. * * @param int|WP_Post $PER_ID person ID or WP_Post object (optional) If not included try to obtain it via request. * * @return EE_Person */ public static function get_person($PER_ID = 0) { $PER_ID = $PER_ID instanceof WP_Post ? $PER_ID->ID : absint($PER_ID); // do we already have the Person you are looking for? if (EEH_People_View::$_person instanceof EE_Person && $PER_ID && EEH_People_View::$_person->ID() === $PER_ID) { return EEH_People_View::$_person; } EEH_People_View::$_person = NULL; // international newspaper? global $post; // if this is being called from an EE_Person post, then we can just grab the attached EE_Person object if (isset($post->post_type) && $post->post_type == 'espresso_people' || $PER_ID) { // grab the person we're looking for if (isset($post->EE_Person) && ($PER_ID == 0 || $PER_ID == $post->ID)) { EEH_People_View::$_person = $post->EE_Person; } // now if we STILL do NOT have an EE_Person model object, BUT we have an Person ID... if (!EEH_People_View::$_person instanceof EE_Person && $PER_ID) { // sigh... pull it from the db EEH_People_View::$_person = EEM_Person::instance()->get_one_by_ID($PER_ID); } } return EEH_People_View::$_person; }