[ Index ]

PHP Cross Reference of BuddyPress

title

Body

[close]

/src/bp-core/ -> bp-core-widgets.php (source)

   1  <?php
   2  /**
   3   * BuddyPress Core Component Widgets.
   4   *
   5   * @package BuddyPress
   6   * @subpackage Core
   7   * @since 1.0.0
   8   */
   9  
  10  // Exit if accessed directly.
  11  defined( 'ABSPATH' ) || exit;
  12  
  13  /**
  14   * Should BuddyPress load Legacy Widgets?
  15   *
  16   * @since 10.0.0
  17   *
  18   * @return bool False if BuddyPress shouldn't load Legacy Widgets. True otherwise.
  19   */
  20  function bp_core_retain_legacy_widgets() {
  21      $theme_supports = current_theme_supports( 'widgets-block-editor' );
  22      $wp_supports    = bp_is_running_wp( '5.8.0' );
  23  
  24      /** This filter is documented in wp-includes/widgets.php */
  25      $block_widgets_enabled = $theme_supports && apply_filters( 'use_widgets_block_editor', $wp_supports );
  26  
  27      $retain_legacy_widgets = true;
  28      if ( $block_widgets_enabled ) {
  29          $retain_legacy_widgets = false;
  30      }
  31  
  32      /**
  33       * Filter here to force Legacy Widgets to be retained or not.
  34       *
  35       * @since 10.0.0
  36       *
  37       * @param bool $retain_legacy_widgets False if BuddyPress shouldn't load Legacy Widgets. True otherwise.
  38       */
  39      return apply_filters( 'bp_core_retain_legacy_widgets', $retain_legacy_widgets );
  40  }
  41  
  42  /**
  43   * Registers the Login widget.
  44   *
  45   * @since 10.0.0
  46   */
  47  function bp_core_register_login_widget() {
  48      register_widget( 'BP_Core_Login_Widget' );
  49  }
  50  
  51  /**
  52   * Register bp-core widgets.
  53   *
  54   * @since 1.0.0
  55   */
  56  function bp_core_register_widgets() {
  57      add_action( 'widgets_init', 'bp_core_register_login_widget' );
  58  }
  59  add_action( 'bp_register_widgets', 'bp_core_register_widgets' );
  60  
  61  /**
  62   * Checks whether BuddyPress should unhook Legacy Widget registrations.
  63   *
  64   * @since 10.0.0
  65   */
  66  function bp_core_maybe_unhook_legacy_widgets() {
  67      if ( bp_core_retain_legacy_widgets() ) {
  68          return;
  69      }
  70  
  71      $callbacks = array(
  72          'bp_core_register_login_widget',
  73          'bp_members_register_members_widget',
  74          'bp_members_register_whos_online_widget',
  75          'bp_members_register_recently_active_widget',
  76      );
  77  
  78      if ( bp_is_active( 'friends' ) ) {
  79          $callbacks[] = 'bp_friends_register_friends_widget';
  80      }
  81  
  82      if ( bp_is_active( 'groups' ) ) {
  83          $callbacks[] = 'bp_groups_register_groups_widget';
  84      }
  85  
  86      if ( bp_is_active( 'messages' ) ) {
  87          $callbacks[] = 'bp_messages_register_sitewide_notices_widget';
  88      }
  89  
  90      if ( bp_is_active( 'blogs' ) && bp_is_active( 'activity' ) && bp_is_root_blog() ) {
  91          $callbacks[] = 'bp_blogs_register_recent_posts_widget';
  92      }
  93  
  94      foreach ( $callbacks as $callback ) {
  95          remove_action( 'widgets_init', $callback );
  96      }
  97  }
  98  add_action( 'widgets_init', 'bp_core_maybe_unhook_legacy_widgets', 0 );


Generated: Thu Dec 2 01:00:58 2021 Cross-referenced by PHPXref 0.7.1