@@ 6886-6956 (lines=71) @@ | ||
6883 | } |
|
6884 | } |
|
6885 | } |
|
6886 | else { |
|
6887 | if ( !is_array( $pod ) ) |
|
6888 | $pod = $this->load_pod( array( 'id' => $pod_id, 'table_info' => false ), false ); |
|
6889 | ||
6890 | if ( !empty( $pod ) && in_array( $pod[ 'type' ], array( 'post_type', 'media', 'taxonomy', 'user', 'comment', 'settings' ) ) ) { |
|
6891 | $meta_type = $pod[ 'type' ]; |
|
6892 | ||
6893 | if ( in_array( $meta_type, array( 'post_type', 'media' ) ) ) |
|
6894 | $meta_type = 'post'; |
|
6895 | elseif ( 'taxonomy' == $meta_type ) |
|
6896 | $meta_type = 'term'; |
|
6897 | ||
6898 | $no_conflict = pods_no_conflict_check( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
6899 | ||
6900 | if ( !$no_conflict ) |
|
6901 | pods_no_conflict_on( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
6902 | ||
6903 | foreach ( $ids as $id ) { |
|
6904 | if ( 'settings' == $meta_type ) { |
|
6905 | $related_id = get_option( '_pods_' . $pod[ 'name' ] . '_' . $field[ 'name' ] ); |
|
6906 | ||
6907 | if ( empty( $related_id ) ) |
|
6908 | $related_id = get_option( $pod[ 'name' ] . '_' . $field[ 'name' ] ); |
|
6909 | ||
6910 | if ( is_array( $related_id ) && !empty( $related_id ) ) { |
|
6911 | foreach ( $related_id as $related ) { |
|
6912 | if ( is_array( $related ) && !empty( $related ) ) { |
|
6913 | if ( isset( $related[ 'id' ] ) ) |
|
6914 | $related_ids[] = (int) $related[ 'id' ]; |
|
6915 | else { |
|
6916 | foreach ( $related as $r ) { |
|
6917 | $related_ids[] = (int) $r; |
|
6918 | } |
|
6919 | } |
|
6920 | } |
|
6921 | else |
|
6922 | $related_ids[] = (int) $related; |
|
6923 | } |
|
6924 | } |
|
6925 | } |
|
6926 | else { |
|
6927 | $related_id = get_metadata( $meta_type, $id, '_pods_' . $field[ 'name' ], true ); |
|
6928 | ||
6929 | if ( empty( $related_id ) ) |
|
6930 | $related_id = get_metadata( $meta_type, $id, $field[ 'name' ] ); |
|
6931 | ||
6932 | if ( is_array( $related_id ) && !empty( $related_id ) ) { |
|
6933 | foreach ( $related_id as $related ) { |
|
6934 | if ( is_array( $related ) && !empty( $related ) ) { |
|
6935 | if ( isset( $related[ 'id' ] ) ) |
|
6936 | $related_ids[] = (int) $related[ 'id' ]; |
|
6937 | else { |
|
6938 | foreach ( $related as $r ) { |
|
6939 | if ( isset( $related[ 'id' ] ) ) |
|
6940 | $related_ids[] = (int) $r[ 'id' ]; |
|
6941 | else |
|
6942 | $related_ids[] = (int) $r; |
|
6943 | } |
|
6944 | } |
|
6945 | } |
|
6946 | else |
|
6947 | $related_ids[] = (int) $related; |
|
6948 | } |
|
6949 | } |
|
6950 | } |
|
6951 | } |
|
6952 | ||
6953 | if ( !$no_conflict ) |
|
6954 | pods_no_conflict_off( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
6955 | } |
|
6956 | } |
|
6957 | ||
6958 | if ( is_array( $related_ids ) ) { |
|
6959 | $related_ids = array_unique( array_filter( $related_ids ) ); |
|
@@ 7038-7111 (lines=74) @@ | ||
7035 | } |
|
7036 | } |
|
7037 | } |
|
7038 | else { |
|
7039 | // @todo handle meta-based lookups |
|
7040 | return false; |
|
7041 | ||
7042 | if ( !is_array( $pod ) ) |
|
7043 | $pod = $this->load_pod( array( 'id' => $pod_id, 'table_info' => false ), false ); |
|
7044 | ||
7045 | if ( !empty( $pod ) && in_array( $pod[ 'type' ], array( 'post_type', 'media', 'taxonomy', 'user', 'comment', 'settings' ) ) ) { |
|
7046 | $related_ids = array(); |
|
7047 | ||
7048 | $meta_type = $pod[ 'type' ]; |
|
7049 | ||
7050 | if ( in_array( $meta_type, array( 'post_type', 'media' ) ) ) |
|
7051 | $meta_type = 'post'; |
|
7052 | elseif ( 'taxonomy' == $meta_type ) |
|
7053 | $meta_type = 'term'; |
|
7054 | ||
7055 | $no_conflict = pods_no_conflict_check( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
7056 | ||
7057 | if ( !$no_conflict ) |
|
7058 | pods_no_conflict_on( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
7059 | ||
7060 | if ( 'settings' == $meta_type ) { |
|
7061 | $related_id = get_option( '_pods_' . $pod[ 'name' ] . '_' . $field[ 'name' ] ); |
|
7062 | ||
7063 | if ( empty( $related_id ) ) |
|
7064 | $related_id = get_option( $pod[ 'name' ] . '_' . $field[ 'name' ] ); |
|
7065 | ||
7066 | if ( is_array( $related_id ) && !empty( $related_id ) ) { |
|
7067 | foreach ( $related_id as $related ) { |
|
7068 | if ( is_array( $related ) && !empty( $related ) ) { |
|
7069 | if ( isset( $related[ 'id' ] ) ) |
|
7070 | $related_ids[] = (int) $related[ 'id' ]; |
|
7071 | else { |
|
7072 | foreach ( $related as $r ) { |
|
7073 | $related_ids[] = (int) $r; |
|
7074 | } |
|
7075 | } |
|
7076 | } |
|
7077 | else |
|
7078 | $related_ids[] = (int) $related; |
|
7079 | } |
|
7080 | } |
|
7081 | } |
|
7082 | else { |
|
7083 | $related_id = get_metadata( $meta_type, $id, '_pods_' . $field[ 'name' ], true ); |
|
7084 | ||
7085 | if ( empty( $related_id ) ) |
|
7086 | $related_id = get_metadata( $meta_type, $id, $field[ 'name' ] ); |
|
7087 | ||
7088 | if ( is_array( $related_id ) && !empty( $related_id ) ) { |
|
7089 | foreach ( $related_id as $related ) { |
|
7090 | if ( is_array( $related ) && !empty( $related ) ) { |
|
7091 | if ( isset( $related[ 'id' ] ) ) |
|
7092 | $related_ids[] = (int) $related[ 'id' ]; |
|
7093 | else { |
|
7094 | foreach ( $related as $r ) { |
|
7095 | if ( isset( $related[ 'id' ] ) ) |
|
7096 | $related_ids[] = (int) $r[ 'id' ]; |
|
7097 | else |
|
7098 | $related_ids[] = (int) $r; |
|
7099 | } |
|
7100 | } |
|
7101 | } |
|
7102 | else |
|
7103 | $related_ids[] = (int) $related; |
|
7104 | } |
|
7105 | } |
|
7106 | } |
|
7107 | ||
7108 | if ( !$no_conflict ) |
|
7109 | pods_no_conflict_off( ( 'term' == $meta_type ? 'taxonomy' : $meta_type ) ); |
|
7110 | } |
|
7111 | } |
|
7112 | ||
7113 | if ( is_array( $related_ids ) ) |
|
7114 | $related_ids = array_unique( array_filter( $related_ids ) ); |