|
Server : LiteSpeed System : Linux srv107862549.host 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 User : malam2778 ( 1069) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /home/malam188.net/public_html/wp-content/plugins/litespeed-cache/thirdparty/ |
Upload File : |
<?php
/**
* The Third Party integration with the bbPress plugin.
*
* @since 1.0.5
* @package LiteSpeed
* @subpackage LiteSpeed_Cache/thirdparty
*/
namespace LiteSpeed\Thirdparty;
defined( 'WPINC' ) || exit;
use LiteSpeed\Router;
/**
* Integration for bbPress cache handling and purging.
*/
class BBPress {
/**
* Detect if bbPress is installed and if the page is a bbPress page.
*
* @since 1.0.5
* @access public
* @return void
*/
public static function detect() {
if ( function_exists( 'is_bbpress' ) ) {
add_action( 'litespeed_api_purge_post', __CLASS__ . '::on_purge' ); // todo
if ( apply_filters( 'litespeed_esi_status', false ) ) {
// Don't consider private cache yet (will do if any feedback)
add_action( 'litespeed_control_finalize', __CLASS__ . '::set_control' );
}
}
}
/**
* This filter is used to let the cache know if a page is cacheable.
*
* @since 1.2.0
* @access public
* @return void
*/
public static function set_control() {
if ( ! apply_filters( 'litespeed_control_cacheable', false ) ) {
return;
}
// Set non ESI public
if ( is_bbpress() && Router::is_logged_in() ) {
do_action( 'litespeed_control_set_nocache', 'bbpress nocache due to loggedin' );
}
}
/**
* When a bbPress page is purged, need to purge the forums list and
* any/all ancestor pages.
*
* @since 1.0.5
* @access public
* @param int $post_id The post id of the page being purged.
* @return void
*/
public static function on_purge( $post_id ) {
if ( ! is_bbpress() ) {
if ( ! function_exists( 'bbp_is_forum' ) || ! function_exists( 'bbp_is_topic' ) || ! function_exists( 'bbp_is_reply' ) ) {
return;
}
if ( ! bbp_is_forum( $post_id ) && ! bbp_is_topic( $post_id ) && ! bbp_is_reply( $post_id ) ) {
return;
}
}
// Need to purge base forums page, bbPress page was updated.
do_action( 'litespeed_purge_posttype', bbp_get_forum_post_type() );
$ancestors = get_post_ancestors( $post_id );
// If there are ancestors, need to purge them as well.
if ( ! empty( $ancestors ) ) {
foreach ( $ancestors as $ancestor ) {
do_action( 'litespeed_purge_post', $ancestor );
}
}
global $wp_widget_factory;
$replies_widget = $wp_widget_factory->get_widget_object( 'BBP_Replies_Widget' );
if ( bbp_is_reply( $post_id ) && $replies_widget ) {
do_action( 'litespeed_purge_widget', $replies_widget->id );
}
$topic_widget = $wp_widget_factory->get_widget_object( 'BBP_Topics_Widget' );
if ( bbp_is_topic( $post_id ) && $topic_widget ) {
do_action( 'litespeed_purge_widget', $topic_widget->id );
}
}
}