/* I'll put here different examples of dynamic query for Oxygen repeater : * - Use one of the following repeater_dynamic_query definitions * in code block just BEFORE the repeater * - Set the repeater custom query settings : post type, number of posts, order... * - Add the remove_action in a code block AFTER the repeater */ /**************************************************************************************************** * Display related posts for any CPT with taxonomy: * - Filter query to prevent altering queries inside the repeater items, * - Retrieve post category slug : I have only one for each post, so I just take first element * (You might need to add error tests, of course, if you don't accept empty results, * for instance if you forgot to set post category.) * - Set tax_query arg with category slug * - Set random order * - Exclude current post * - Deactivate pagination */ /* Code block just BEFORE the repeater */ query['post_type'][0] == 'post' ) { $cat = wp_get_post_terms( $post->ID , 'category', array( 'fields' => 'slugs' ) )[0]; $query->set( 'tax_query', array( array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => $cat, 'include_children' => false ) ) ); $query->set( 'orderby', 'rand' ); $query->set( 'post__not_in', array($post->ID) ); $query->set( 'no_found_rows', true ); } } add_action( 'pre_get_posts', 'repeater_dynamic_query' ); ?> /* * REPEATER: use custom query and set post type to "post" or any cpt slug, * number of posts per page as you wish, * and replace "category" by your cpt taxonomy slug if needed */ /* Code block just AFTER the repeater */ /**************************************************************************************************** * Display only sticky posts with repeater: * - Get only sticky posts * - Deactivate pagination */ /* Code block just BEFORE the repeater */ query['post_type'][0] == 'post' ) { $query->set( 'post__in', get_option( 'sticky_posts' ) ); $query->set( 'no_found_rows', true ); } } add_action( 'pre_get_posts', 'repeater_dynamic_query' ); ?> /* * REPEATER: use custom query and set post type to "post", * number of posts per page and order as you wish, * AND DO NOT UNCHECK "Ignore sticky posts" */ /* Code block just AFTER the repeater */