Server IP : 15.235.198.142 / Your IP : 216.73.216.0 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/yme/wp-content/plugins/elementor-pro/modules/posts/ |
Upload File : |
<?php namespace ElementorPro\Modules\Posts; use Elementor\Utils; use ElementorPro\Base\Module_Base; use ElementorPro\Modules\Posts\Data\Controller; use ElementorPro\Modules\Posts\Widgets\Posts_Base; use ElementorPro\Plugin; use ElementorPro\Modules\Posts\Traits\Pagination_Trait; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class Module extends Module_Base { use Pagination_Trait; public function get_name() { return 'posts'; } public function get_widgets() { return [ 'Posts', 'Portfolio', ]; } /** * Get the base URL for assets. * * @return string */ public function get_assets_base_url(): string { return ELEMENTOR_PRO_URL; } /** * Register styles. * * At build time, Elementor compiles `/modules/posts/assets/scss/frontend.scss` * to `/assets/css/widget-posts.min.css`. * * @return void */ public function register_styles() { wp_register_style( 'widget-posts', $this->get_css_assets_url( 'widget-posts', null, true, true ), [ 'elementor-frontend' ], ELEMENTOR_PRO_VERSION ); } /** * Fix WP 5.5 pagination issue. * * Return true to mark that it's handled and avoid WP to set it as 404. * * @see https://github.com/elementor/elementor/issues/12126 * @see https://core.trac.wordpress.org/ticket/50976 * * Based on the logic at \WP::handle_404. * * @param $handled - Default false. * @param $wp_query * * @return bool */ public function allow_posts_widget_pagination( $handled, $wp_query ) { // Check it's not already handled and it's a single paged query. if ( $handled || empty( $wp_query->query_vars['page'] ) || ! is_singular() || empty( $wp_query->post ) ) { return $handled; } $document = Plugin::elementor()->documents->get( $wp_query->post->ID ); return $this->is_valid_pagination( $document->get_elements_data(), $wp_query->query_vars['page'] ); } public function __construct() { parent::__construct(); Plugin::elementor()->data_manager->register_controller( Controller::class ); add_filter( 'pre_handle_404', [ $this, 'allow_posts_widget_pagination' ], 10, 2 ); add_action( 'elementor/frontend/after_register_styles', [ $this, 'register_styles' ] ); } }