diff --git a/pods-beaver-themer.php b/pods-beaver-themer.php index c7d8919..d3e9270 100644 --- a/pods-beaver-themer.php +++ b/pods-beaver-themer.php @@ -325,6 +325,9 @@ function pods_beaver_loop_before_query_settings( $settings ) { */ $field_params = apply_filters( 'pods_beaver_loop_settings_field_params', $field_params, $settings, $pod ); + // Use post type wildcard by default. + $settings->post_type = 'any'; + if ( $pod ) { if ( $find_params ) { // Optimized select only gets the ID @@ -344,6 +347,11 @@ function pods_beaver_loop_before_query_settings( $settings ) { $field_params['output'] = 'id'; $ids = $pod->field( $field_params ); } + + // Add pod name as the post type query. + $settings->post_type = $pod->pod; + // Add pod context to the settings so other filters can make use of this. + $settings->pod = $pod; } if ( empty( $ids ) ) { @@ -351,9 +359,6 @@ function pods_beaver_loop_before_query_settings( $settings ) { add_filter( 'fl_builder_loop_query', 'pods_beaver_empty_query' ); } - // we have id's no need to specify the type - $settings->post_type = 'any'; - add_filter( 'fl_builder_loop_query_args', 'pods_beaver_uabb_blog_posts', 10, 1 ); $setting_post_type_ids_field_name = 'posts_' . $settings->post_type; @@ -425,6 +430,12 @@ function pods_beaver_uabb_blog_posts( $args ) { $args['post_type'] = 'any'; remove_filter( 'fl_builder_loop_query_args', 'pods_beaver_uabb_blog_posts' ); + // Set post type correctly if a Pod is found. + $pod = pods_v( 'pod', pods_v( 'settings', $args, array() ), null ); + if ( $pod ) { + $args['post_type'] = $pod->pod; + } + return $args; }