Skip to:
Content

BuddyPress.org

Changeset 13378


Ignore:
Timestamp:
12/08/2022 06:52:07 AM (3 years ago)
Author:
imath
Message:

Restrict bp_comments_pre_query() usage to core/comments block

Props boonebgorges

See #8777 (trunk)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-core/bp-core-filters.php

    r13361 r13378  
    7979add_filter( 'comments_open', 'bp_comments_open', 10, 2 );
    8080
    81 // Force comments count to be 0 or comments list to be an empty array.
    82 add_filter( 'comments_pre_query', 'bp_comments_pre_query', 10, 2 );
     81/**
     82 * Removes the filter to `comments_pre_query` to restrict `bp_comments_pre_query`
     83 * usage to the `core/comments' block.
     84 *
     85 * @since 10.7.0
     86 *
     87 * @param string $block_content The rendered block content.
     88 * @return string Unchanged rendered block content.
     89 */
     90function bp_post_render_core_comments_block( $block_content ) {
     91    // Stop forcing comments count to be 0 or comments list to be an empty array.
     92    remove_filter( 'comments_pre_query', 'bp_comments_pre_query', 10 );
     93    remove_filter( 'render_block', 'bp_post_render_core_comments_block' );
     94
     95    return $block_content;
     96}
     97
     98/**
     99 * Checks the current block being rendered is `core/comments` before hooking to
     100 * `comments_pre_query`.
     101 *
     102 * @since 10.7.0
     103 *
     104 * @param string|null $pre_render   The pre-rendered content. Default null.
     105 * @param array       $parsed_block The block being rendered.
     106 * @return string|null Unchanged pre-rendered content.
     107 */
     108function bp_pre_render_core_comments_block( $pre_render, $parsed_block ) {
     109    if ( isset( $parsed_block['blockName'] ) && 'core/comments' === $parsed_block['blockName'] ) {
     110        // Force comments count to be 0 or comments list to be an empty array.
     111        add_filter( 'comments_pre_query', 'bp_comments_pre_query', 10, 2 );
     112        add_filter( 'render_block', 'bp_post_render_core_comments_block' );
     113    }
     114
     115    return $pre_render;
     116}
     117add_filter( 'pre_render_block', 'bp_pre_render_core_comments_block', 10, 2 );
    83118
    84119// Prevent DB query for WP's main loop.
Note: See TracChangeset for help on using the changeset viewer.