Skip to main content
Documentation/Developers/APIs/Hooks Reference/Loops

Loops

Item hooks repeat during rendering, preview, and pagination; scope work to the intended loop.

Shared Hooks

Hook Kind and arguments
breakdance_before_loop, breakdance_after_loop Actions: $loop, $actionData.
breakdance_before_loop_item, breakdance_after_loop_item Actions: $object, $objectType, $actionData.
breakdance_loop_classes Filter: class string, $actionData; return a string.
breakdance_loop_item_classes Filter: class string, $object, $objectType, $actionData; return a string.

$actionData['propertiesData'] contains loop properties. Item contexts can be posts, terms, or fields; check type:

PHP
add_filter('breakdance_loop_item_classes', function ($classes, $object, $objectType, $actionData) {
    if ($objectType === 'post' && $object instanceof WP_Post
        && $object->post_type === 'event') {
        $classes .= ' acme-event-item';
    }
    return $classes;
}, 10, 4);

Loop Builder Actions

Post Loop Builder emits breakdance_posts_loop_before_loop, breakdance_posts_loop_before_post, breakdance_posts_loop_after_post, breakdance_posts_loop_after_loop, and breakdance_posts_loop_after_pagination.

Term Loop Builder emits breakdance_terms_loop_before_loop, breakdance_terms_loop_before_term, breakdance_terms_loop_after_term, breakdance_terms_loop_after_loop, and breakdance_terms_loop_after_pagination.

Each receives $actionData and ignores returns; echo markup where needed. Item actions surround the wrapper. Empty branches may omit normal hooks, and other loop elements may not emit these hooks.

Posts List Actions

The Posts List element has its own hooks for inserting markup at specific points:

Hook Output position
breakdance_posts_list_before_loop Before the list.
breakdance_posts_list_before_post Before each post.
breakdance_posts_list_after_image After the image.
breakdance_posts_list_inside_wrap_start At the beginning of the content wrapper.
breakdance_posts_list_after_title After the title.
breakdance_posts_list_after_meta After metadata.
breakdance_posts_list_after_tax After taxonomy output.
breakdance_posts_list_after_content After content.
breakdance_posts_list_inside_wrap_end At the end of the content wrapper.
breakdance_posts_list_after_post After each post.
breakdance_posts_list_after_loop After the list.
breakdance_posts_list_after_pagination After pagination.
PHP
add_action('breakdance_posts_list_after_title', function () {
    echo '<p class="post-note">' . esc_html(get_the_date()) . '</p>';
});

These are the Posts List hooks documented on GitHub. They are separate from the Post Loop Builder hooks above.