Author is Aleš Sýkora
Updated: 9. 2. 2022, Added: 14. 1. 2021
Oxygen Dynamic repeater examples
Query parent pagedata in Oxygen repeater
Query parent page on child page. If current page is parent then query this page itself.
// Code block before repeater
<?php
$args = array(
'post_parent' => get_the_ID(), // Current post's ID
);
$children = get_children( $args );
// Check if the post has any child
if ( ! empty($children) ) {
// The post has at least one child
function dynamic_ids_query( $query ) {
if ( $query->query['post_type'][0] == 'nabidka' ) {
$post_id = get_the_ID();
$query->set( 'p', $post_id );
$query->set( 'no_found_rows', true ); /* Delete this if you need pagination */
}
}
add_action( 'pre_get_posts', 'dynamic_ids_query' );
echo "has childs";
} else {
// There is no child for this post
echo "do not have childs";
function dynamic_ids_query( $query ) {
global $post;
if ( $query->query['post_type'][0] == 'nabidka' ) {
$parentpost_id = wp_get_post_parent_id( $post_ID );
$query->set( 'p', $parentpost_id );
$query->set( 'no_found_rows', true ); /* Delete this if you need pagination */
}
}
add_action( 'pre_get_posts', 'dynamic_ids_query' );
}
?>
//repeater block
//code block after repeater
<?php
remove_action( 'pre_get_posts', 'dynamic_ids_query' );
?>
Display all posts with same ACF post object field value
Gets current post ID and look for posts connected to it by post object field from ACF.
//before repeater code block
<?php
function dynamic_query_hraci( $query ) {
global $post;
if ( $query->query['post_type'][0] == 'post' ) {
$hrac = get_the_ID();
$query->set( 'meta_query', array(
array(
'key' => 'hrac',
'value' => $hrac,
'compare' => '=',
)));
$query->set( 'no_found_rows', true );
}
}
add_action( 'pre_get_posts', 'dynamic_query_hraci' );
?>
//repeater
//after repeater code block
<?php
remove_action( 'pre_get_posts', 'dynamic_query_hraci' );
?>