/** * Get Pod object * * @since 2.5.6 * * @param $pod_name * @param $id * * @return bool|Pods */ protected static function get_pod($pod_name, $id) { if (!self::$pod || self::$pod->pod != $pod_name) { self::$pod = pods($pod_name, $id, true); } if (self::$pod && self::$pod->id != $id) { self::$pod->fetch($id); } return self::$pod; }
/** * Add REST API support to post type and taxonomy objects. * * @uses "init" * * @since 2.5.6 */ public function add_rest_support() { static $rest_support_added; if (!function_exists('register_rest_field')) { return; } include_once PODS_DIR . 'classes/PodsRESTFields.php'; include_once PODS_DIR . 'classes/PodsRESTHandlers.php'; $rest_bases = pods_transient_get('pods_rest_bases'); if (empty($rest_bases)) { $pods = pods_api()->load_pods(); $rest_bases = array(); if (!empty($pods) && is_array($pods)) { foreach ($pods as $pod) { $type = $pod['type']; if (in_array($type, array('post_type', 'taxonomy'))) { if ($pod && PodsRESTHandlers::pod_extends_core_route($pod)) { $rest_bases[$pod['name']] = array('type' => $type, 'base' => sanitize_title(pods_v('rest_base', $pod['options'], $pod['name']))); } } } } if (empty($rest_bases)) { $rest_bases = 'none'; } pods_transient_set('pods_rest_bases', $rest_bases); } if (empty($rest_support_added) && !empty($rest_bases) && 'none' !== $rest_bases) { foreach ($rest_bases as $pod_name => $pod_info) { $pod_type = $pod_info['type']; $rest_base = $pod_info['base']; if ('post_type' == $pod_type) { PodsRESTHandlers::post_type_rest_support($pod_name, $rest_base); } elseif ('taxonomy' == $pod_type) { PodsRESTHandlers::taxonomy_rest_support($pod_name, $rest_base); } new PodsRESTFields($pod_name); } $rest_support_added = true; } }