@@ 7059-7129 (lines=71) @@ | ||
7056 | } |
|
7057 | } |
|
7058 | } |
|
7059 | else { |
|
7060 | if ( !is_array( $pod ) ) |
|
7061 | $pod = $this->load_pod( array( 'id' => $pod_id, 'table_info' => false ), false ); |
|
7062 | ||
7063 | if ( !empty( $pod ) && in_array( $pod[ 'type' ], array( 'post_type', 'media', 'taxonomy', 'user', 'comment', 'settings' ) ) ) { |
|
7064 | $meta_type = $pod[ 'type' ]; |
|
7065 | ||
7066 | if ( in_array( $meta_type, array( 'post_type', 'media' ) ) ) |
|
7067 | $meta_type = 'post'; |
|
7068 | elseif ( 'taxonomy' == $meta_type ) |
|
7069 | $meta_type = 'term'; |
|
7070 | ||
7071 | $no_conflict = pods_no_conflict_check( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
7072 | ||
7073 | if ( !$no_conflict ) |
|
7074 | pods_no_conflict_on( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
7075 | ||
7076 | foreach ( $ids as $id ) { |
|
7077 | if ( 'settings' == $meta_type ) { |
|
7078 | $related_id = get_option( '_pods_' . $pod[ 'name' ] . '_' . $field[ 'name' ] ); |
|
7079 | ||
7080 | if ( empty( $related_id ) ) |
|
7081 | $related_id = get_option( $pod[ 'name' ] . '_' . $field[ 'name' ] ); |
|
7082 | ||
7083 | if ( is_array( $related_id ) && !empty( $related_id ) ) { |
|
7084 | foreach ( $related_id as $related ) { |
|
7085 | if ( is_array( $related ) && !empty( $related ) ) { |
|
7086 | if ( isset( $related[ 'id' ] ) ) |
|
7087 | $related_ids[] = (int) $related[ 'id' ]; |
|
7088 | else { |
|
7089 | foreach ( $related as $r ) { |
|
7090 | $related_ids[] = (int) $r; |
|
7091 | } |
|
7092 | } |
|
7093 | } |
|
7094 | else |
|
7095 | $related_ids[] = (int) $related; |
|
7096 | } |
|
7097 | } |
|
7098 | } |
|
7099 | else { |
|
7100 | $related_id = get_metadata( $meta_type, $id, '_pods_' . $field[ 'name' ], true ); |
|
7101 | ||
7102 | if ( empty( $related_id ) ) |
|
7103 | $related_id = get_metadata( $meta_type, $id, $field[ 'name' ] ); |
|
7104 | ||
7105 | if ( is_array( $related_id ) && !empty( $related_id ) ) { |
|
7106 | foreach ( $related_id as $related ) { |
|
7107 | if ( is_array( $related ) && !empty( $related ) ) { |
|
7108 | if ( isset( $related[ 'id' ] ) ) |
|
7109 | $related_ids[] = (int) $related[ 'id' ]; |
|
7110 | else { |
|
7111 | foreach ( $related as $r ) { |
|
7112 | if ( isset( $related[ 'id' ] ) ) |
|
7113 | $related_ids[] = (int) $r[ 'id' ]; |
|
7114 | else |
|
7115 | $related_ids[] = (int) $r; |
|
7116 | } |
|
7117 | } |
|
7118 | } |
|
7119 | else |
|
7120 | $related_ids[] = (int) $related; |
|
7121 | } |
|
7122 | } |
|
7123 | } |
|
7124 | } |
|
7125 | ||
7126 | if ( !$no_conflict ) |
|
7127 | pods_no_conflict_off( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
7128 | } |
|
7129 | } |
|
7130 | ||
7131 | if ( is_array( $related_ids ) ) { |
|
7132 | $related_ids = array_unique( array_filter( $related_ids ) ); |
|
@@ 7211-7284 (lines=74) @@ | ||
7208 | } |
|
7209 | } |
|
7210 | } |
|
7211 | else { |
|
7212 | // @todo handle meta-based lookups |
|
7213 | return false; |
|
7214 | ||
7215 | if ( !is_array( $pod ) ) |
|
7216 | $pod = $this->load_pod( array( 'id' => $pod_id, 'table_info' => false ), false ); |
|
7217 | ||
7218 | if ( !empty( $pod ) && in_array( $pod[ 'type' ], array( 'post_type', 'media', 'taxonomy', 'user', 'comment', 'settings' ) ) ) { |
|
7219 | $related_ids = array(); |
|
7220 | ||
7221 | $meta_type = $pod[ 'type' ]; |
|
7222 | ||
7223 | if ( in_array( $meta_type, array( 'post_type', 'media' ) ) ) |
|
7224 | $meta_type = 'post'; |
|
7225 | elseif ( 'taxonomy' == $meta_type ) |
|
7226 | $meta_type = 'term'; |
|
7227 | ||
7228 | $no_conflict = pods_no_conflict_check( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
7229 | ||
7230 | if ( !$no_conflict ) |
|
7231 | pods_no_conflict_on( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
7232 | ||
7233 | if ( 'settings' == $meta_type ) { |
|
7234 | $related_id = get_option( '_pods_' . $pod[ 'name' ] . '_' . $field[ 'name' ] ); |
|
7235 | ||
7236 | if ( empty( $related_id ) ) |
|
7237 | $related_id = get_option( $pod[ 'name' ] . '_' . $field[ 'name' ] ); |
|
7238 | ||
7239 | if ( is_array( $related_id ) && !empty( $related_id ) ) { |
|
7240 | foreach ( $related_id as $related ) { |
|
7241 | if ( is_array( $related ) && !empty( $related ) ) { |
|
7242 | if ( isset( $related[ 'id' ] ) ) |
|
7243 | $related_ids[] = (int) $related[ 'id' ]; |
|
7244 | else { |
|
7245 | foreach ( $related as $r ) { |
|
7246 | $related_ids[] = (int) $r; |
|
7247 | } |
|
7248 | } |
|
7249 | } |
|
7250 | else |
|
7251 | $related_ids[] = (int) $related; |
|
7252 | } |
|
7253 | } |
|
7254 | } |
|
7255 | else { |
|
7256 | $related_id = get_metadata( $meta_type, $id, '_pods_' . $field[ 'name' ], true ); |
|
7257 | ||
7258 | if ( empty( $related_id ) ) |
|
7259 | $related_id = get_metadata( $meta_type, $id, $field[ 'name' ] ); |
|
7260 | ||
7261 | if ( is_array( $related_id ) && !empty( $related_id ) ) { |
|
7262 | foreach ( $related_id as $related ) { |
|
7263 | if ( is_array( $related ) && !empty( $related ) ) { |
|
7264 | if ( isset( $related[ 'id' ] ) ) |
|
7265 | $related_ids[] = (int) $related[ 'id' ]; |
|
7266 | else { |
|
7267 | foreach ( $related as $r ) { |
|
7268 | if ( isset( $related[ 'id' ] ) ) |
|
7269 | $related_ids[] = (int) $r[ 'id' ]; |
|
7270 | else |
|
7271 | $related_ids[] = (int) $r; |
|
7272 | } |
|
7273 | } |
|
7274 | } |
|
7275 | else |
|
7276 | $related_ids[] = (int) $related; |
|
7277 | } |
|
7278 | } |
|
7279 | } |
|
7280 | ||
7281 | if ( !$no_conflict ) |
|
7282 | pods_no_conflict_off( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
7283 | } |
|
7284 | } |
|
7285 | ||
7286 | if ( is_array( $related_ids ) ) |
|
7287 | $related_ids = array_unique( array_filter( $related_ids ) ); |