Plugin Directory

Changeset 3730806


Ignore:
Timestamp:
10/06/2026 12:43:17 PM (2 weeks ago)
Author:
rankmath
Message:

Update to version 1.0.280 from GitHub

Location:
seo-by-rank-math
Files:
42 edited
1 copied

Legend:

Unmodified
Added
Removed
  • seo-by-rank-math/tags/1.0.280/includes/helpers/class-wordpress.php

    r3531717 r3730806  
    831831         */
    832832        public static function filetype_and_ext( $types, $file, $filename ) {
    833                 if ( false !== strpos( $filename, '.json' ) ) {
     833                // Validate the real trailing extension so names like `file.json.php` are rejected.
     834                $extension = strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
     835                if ( 'json' === $extension ) {
    834836                        $types['ext']  = 'json';
    835837                        $types['type'] = 'application/json';
    836                 } elseif ( false !== strpos( $filename, '.txt' ) ) {
     838                } elseif ( 'txt' === $extension ) {
    837839                        $types['ext']  = 'txt';
    838840                        $types['type'] = 'text/plain';
  • seo-by-rank-math/tags/1.0.280/includes/modules/analytics/class-objects.php

    r3324705 r3730806  
    6262                ];
    6363                $field_name = 'seo_score';
    64                 $per_page   = $request->get_param( 'per_page' ) ? sanitize_text_field( $request->get_param( 'per_page' ) ) : 25;
    65                 $offset     = ( sanitize_text_field( $request->get_param( 'page' ) ) - 1 ) * $per_page;
     64                $per_page   = absint( $request->get_param( 'per_page' ) );
     65                $per_page   = $per_page ? min( $per_page, 100 ) : 25;
     66                $offset     = ( max( 1, absint( $request->get_param( 'page' ) ) ) - 1 ) * $per_page;
    6667
    6768                // Construct SQL condition based on filter parameters.
  • seo-by-rank-math/tags/1.0.280/includes/modules/analytics/rest/class-rest.php

    r3531717 r3730806  
    4949                        'postsRowsByObjects'  => [
    5050                                'callback' => [ Stats::get(), 'get_posts_rows_by_objects' ],
     51                                'args'     => [
     52                                        'page'     => [
     53                                                'description'       => esc_html__( 'Page number.', 'seo-by-rank-math' ),
     54                                                'type'              => 'integer',
     55                                                'required'          => false,
     56                                                'sanitize_callback' => 'absint',
     57                                        ],
     58                                        'per_page' => [
     59                                                'description'       => esc_html__( 'Results per page.', 'seo-by-rank-math' ),
     60                                                'type'              => 'integer',
     61                                                'required'          => false,
     62                                                'sanitize_callback' => 'absint',
     63                                        ],
     64                                ],
    5165                        ],
    5266                        'post/(?P<id>\d+)'    => [
  • seo-by-rank-math/tags/1.0.280/includes/modules/redirections/class-table.php

    r3531717 r3730806  
    251251                                'activate'   => '<a href="' . $url . '" data-action="activate" class="rank-math-redirection-action">' . esc_html__( 'Activate', 'seo-by-rank-math' ) . '</a>',
    252252                                'trash'      => '<a href="' . $url . '" data-action="trash" class="rank-math-redirection-action">' . esc_html__( 'Trash', 'seo-by-rank-math' ) . '</a>',
    253                                 'view'       => '<a href="' . $view_url . '" rel="bookmark">' . esc_html__( 'View', 'seo-by-rank-math' ) . '</a>',
     253                                'view'       => '<a href="' . esc_url( $view_url ) . '" rel="bookmark">' . esc_html__( 'View', 'seo-by-rank-math' ) . '</a>',
    254254                        ]
    255255                );
  • seo-by-rank-math/tags/1.0.280/includes/modules/seo-analysis/class-seo-analyzer.php

    r3551529 r3730806  
    9090
    9191                $this->action( 'init', 'set_url' );
    92                 $this->maybe_clear_storage();
     92                $this->action( 'admin_init', 'maybe_clear_storage' );
    9393
    9494                $this->ajax( 'analyze', 'analyze_me' );
    … …  
    236236         * Clear stored results if needed.
    237237         */
    238         private function maybe_clear_storage() {
    239                 if ( '1' === Param::request( 'clear_results' ) ) {
    240                         delete_option( 'rank_math_seo_analysis_results' );
    241                         delete_option( 'rank_math_seo_analysis_date' );
    242                         Helper::redirect( Security::remove_query_arg_raw( 'clear_results' ) );
    243                         exit;
    244                 }
     238        public function maybe_clear_storage() {
     239                if ( '1' !== Param::request( 'clear_results' ) ) {
     240                        return;
     241                }
     242
     243                if (
     244                        ! Helper::has_cap( 'site_analysis' ) ||
     245                        ! wp_verify_nonce( Param::request( 'security' ), 'rank-math-ajax-nonce' )
     246                ) {
     247                        return;
     248                }
     249
     250                delete_option( 'rank_math_seo_analysis_results' );
     251                delete_option( 'rank_math_seo_analysis_date' );
     252                Helper::redirect( Security::remove_query_arg_raw( [ 'clear_results', 'security' ] ) );
     253                exit;
    245254        }
    246255
  • seo-by-rank-math/tags/1.0.280/includes/modules/status/class-import-export-settings.php

    r3531717 r3730806  
    5151                $wp_filesystem = Helper::get_filesystem();
    5252                if ( is_null( $wp_filesystem ) || ! Helper::is_filesystem_direct() ) {
     53                        \wp_delete_file( $file['file'] );
    5354                        return [
    5455                                'error' => esc_html__( 'Uploaded file could not be read.', 'seo-by-rank-math' ),
  • seo-by-rank-math/tags/1.0.280/languages/rank-math.pot

    r3721356 r3730806  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Rank Math SEO 1.0.280-beta\n"
     5"Project-Id-Version: Rank Math SEO 1.0.280\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/seo-by-rank-math\n"
    77"Last-Translator: Rank Math <support@rankmath.com>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-09-30T12:22:53+00:00\n"
     12"POT-Creation-Date: 2026-10-06T05:13:11+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    31533153msgstr ""
    31543154
     3155msgid "Page number."
     3156msgstr ""
     3157
     3158msgid "Results per page."
     3159msgstr ""
     3160
    31553161msgid "Post ID."
    31563162msgstr ""
    31573163
    31583164msgid "Post Type."
    3159 msgstr ""
    3160 
    3161 msgid "Page number."
    3162 msgstr ""
    3163 
    3164 msgid "Results per page."
    31653165msgstr ""
    31663166
  • seo-by-rank-math/tags/1.0.280/rank-math.php

    r3721356 r3730806  
    1010 * @wordpress-plugin
    1111 * Plugin Name:       Rank Math SEO
    12  * Version:           1.0.280-beta
     12 * Version:           1.0.280
    1313 * Plugin URI:        https://rankmath.com/
    1414 * Description:       Rank Math SEO is the Best WordPress SEO plugin with the features of many SEO and AI SEO tools in a single package to help multiply your SEO traffic.
    … …  
    3535         * @var string
    3636         */
    37         public $version = '1.0.280-beta';
     37        public $version = '1.0.280';
    3838
    3939        /**
  • seo-by-rank-math/tags/1.0.280/readme.txt

    r3706794 r3730806  
    66Requires at least: 6.7
    77Requires PHP: 7.4
    8 Stable tag: 1.0.279
     8Stable tag: 1.0.280
    99License: GPLv3 or later
    1010License URI: https://www.gnu.org/licenses/gpl-3.0.txt
    … …  
    429429== Changelog ==
    430430
    431 = 1.0.279 [Sep 22, 2026] =
    432 - [HUGE!] Added  Gemini Tracking, Multi-Language Support, and Daily/Weekly/Monthly refresh options to [AI Visibility] (https://rankmath.com/ai-visibility/?play-video=gS5-DFQrSxs).
    433 - Added `rank-math/get-404-logs` and `rank-math/get-sitemap-status` MCP tools to expose [404 Monitor](https://rankmath.com/kb/monitor-404-errors/) log data and sitemap status/sub-type data to AI assistants.
    434 - Improved [llms.txt](https://rankmath.com/kb/llms-txt/) output to conform to the latest llms.txt specification.
    435 - Fixed AI Visibility Brand detail page was missing data shown on the dashboard, and the "Analyses in last 24h" label was misleading.
    436 - Fixed `rank-math/get-post-links` MCP tool to correctly enforce per-post capability checks.
    437 - Fixed Link Suggestions was building link HTML by unescaped string concatenation, allowing unsafe URL and link text values into block content.
    438 - Fixed Analytics Objects table `page` column was not showing accurate values for WPML translated pages.
     431= 1.0.280 [Oct 06, 2026] =
     432- Improved [Sitemaps](https://rankmath.com/kb/configure-sitemaps/) can now be fully pre-generated with the `wp rankmath sitemap generate` WP-CLI command, so large sites serve cached sitemap files instead of building them on every visit.
     433- Improved plugin security with additional input validation and output escaping hardening.
     434- Fixed [Analytics](https://rankmath.com/kb/analytics/) dashboard sections showing `N/A` after data fetching was completed.
     435- Fixed [Polylang](https://rankmath.com/kb/polylang-compatibility/) meta translations that were not showing for secondary languages when Polylang PRO was active.
     436- Fixed a database error being logged when saving user profiles with SEO Controls enabled for [Author Archives](https://rankmath.com/kb/titles-and-meta/#author-archives).
    439437
    440438
  • seo-by-rank-math/tags/1.0.280/vendor/autoload.php

    r3721356 r3730806  
    2323require_once __DIR__ . '/composer/autoload_real.php';
    2424
    25 return ComposerAutoloaderInite176a2802c12293c70ebac20ca58300d::getLoader();
     25return ComposerAutoloaderInit1a6db0eae96225599b2819e07037bb60::getLoader();
  • seo-by-rank-math/tags/1.0.280/vendor/cmb2/cmb2/css/cmb2-rtl.css

    r3721356 r3730806  
    11/*!
    2  * CMB2 - v2.13.2 - 2026-09-30
     2 * CMB2 - v2.13.3 - 2026-10-03
    33 * https://cmb2.io
    44 * Copyright (c) 2026
  • seo-by-rank-math/tags/1.0.280/vendor/cmb2/cmb2/css/cmb2-rtl.min.css

    r3721356 r3730806  
    1 /*! CMB2 - v2.13.2 - 2026-09-30 | https://cmb2.io | Copyright (c) 2026 CMB2 team | Licensed GPLv2 */
     1/*! CMB2 - v2.13.3 - 2026-10-03 | https://cmb2.io | Copyright (c) 2026 CMB2 team | Licensed GPLv2 */
    22/*!
    3  * CMB2 - v2.13.2 - 2026-09-30
     3 * CMB2 - v2.13.3 - 2026-10-03
    44 * https://cmb2.io
    55 * Copyright (c) 2026
  • seo-by-rank-math/tags/1.0.280/vendor/cmb2/cmb2/css/cmb2.css

    r3721356 r3730806  
    11/*!
    2  * CMB2 - v2.13.2 - 2026-09-30
     2 * CMB2 - v2.13.3 - 2026-10-03
    33 * https://cmb2.io
    44 * Copyright (c) 2026
  • seo-by-rank-math/tags/1.0.280/vendor/cmb2/cmb2/css/cmb2.min.css

    r3721356 r3730806  
    1 /*! CMB2 - v2.13.2 - 2026-09-30 | https://cmb2.io | Copyright (c) 2026 CMB2 team | Licensed GPLv2 */
     1/*! CMB2 - v2.13.3 - 2026-10-03 | https://cmb2.io | Copyright (c) 2026 CMB2 team | Licensed GPLv2 */
    22/*!
    3  * CMB2 - v2.13.2 - 2026-09-30
     3 * CMB2 - v2.13.3 - 2026-10-03
    44 * https://cmb2.io
    55 * Copyright (c) 2026
  • seo-by-rank-math/tags/1.0.280/vendor/cmb2/cmb2/includes/rest-api/CMB2_REST_Controller.php

    r3706794 r3730806  
    341341                } else {
    342342
    343                         if ( isset( $this->request['object_id'] ) ) {
    344                                 $this->rest_box->cmb->object_id( sanitize_text_field( $this->request['object_id'] ) );
     343                        $object_id   = isset( $this->request['object_id'] ) ? sanitize_text_field( $this->request['object_id'] ) : null;
     344                        $object_type = isset( $this->request['object_type'] ) ? sanitize_text_field( $this->request['object_type'] ) : null;
     345
     346                        $error = $this->validate_request_object( $object_type, $object_id );
     347                        if ( is_wp_error( $error ) ) {
     348                                $this->rest_box = $error;
     349                                return;
    345350                        }
    346351
    347                         if ( isset( $this->request['object_type'] ) ) {
    348                                 $this->rest_box->cmb->object_type( sanitize_text_field( $this->request['object_type'] ) );
     352                        if ( null !== $object_id ) {
     353                                $this->rest_box->cmb->object_id( $object_id );
    349354                        }
    350                 }
     355
     356                        if ( null !== $object_type ) {
     357                                $this->rest_box->cmb->object_type( $object_type );
     358                        }
     359                }
     360        }
     361
     362        /**
     363         * Validates the requested object_type/object_id against the box's registration.
     364         *
     365         * The requested object_type selects the storage the box reads from and writes
     366         * to, so it has to be a storage type the box was registered for. For the
     367         * options-page type, the object_id is the option name, so it has to be one of
     368         * the box's own option keys. This is request validation, so it is applied
     369         * regardless of the permissions filters.
     370         *
     371         * @since  2.13.3
     372         *
     373         * @param  string|null $object_type The requested object type, if any.
     374         * @param  string|null $object_id   The requested object id, if any.
     375         *
     376         * @return true|WP_Error            True if valid, or a WP_Error.
     377         */
     378        protected function validate_request_object( $object_type, $object_id ) {
     379                if ( null === $object_type || '' === $object_type ) {
     380                        return true;
     381                }
     382
     383                $cmb = $this->rest_box->cmb;
     384
     385                if ( ! in_array( $object_type, $this->get_box_storage_types( $cmb ), true ) ) {
     386                        return new WP_Error( 'cmb2_rest_invalid_object_type', __( 'The object_type parameter does not match an object type this box is registered for.', 'cmb2' ), array(
     387                                'status' => 400,
     388                        ) );
     389                }
     390
     391                if (
     392                        'options-page' === $object_type
     393                        && null !== $object_id
     394                        && '' !== $object_id
     395                        && ! in_array( $object_id, array_map( 'strval', (array) $cmb->options_page_keys() ), true )
     396                ) {
     397                        return new WP_Error( 'cmb2_rest_invalid_object_id', __( 'The object_id parameter does not match an option key this box is registered for.', 'cmb2' ), array(
     398                                'status' => 400,
     399                        ) );
     400                }
     401
     402                return true;
     403        }
     404
     405        /**
     406         * Gets the storage object types for a box's registered object types.
     407         *
     408         * Registered types that are not core object types (post types) store as 'post',
     409         * matching CMB2::mb_object_type().
     410         *
     411         * @since  2.13.3
     412         *
     413         * @param  CMB2 $cmb The box.
     414         *
     415         * @return array     The storage object types.
     416         */
     417        protected function get_box_storage_types( CMB2 $cmb ) {
     418                $types = array();
     419
     420                if ( $cmb->is_options_page_mb() ) {
     421                        $types[] = 'options-page';
     422                }
     423
     424                foreach ( $cmb->box_types( array( 'post' ) ) as $type ) {
     425                        $types[] = $cmb->is_supported_core_object_type( $type ) ? $type : 'post';
     426                }
     427
     428                // A non-core type from the `cmb2_set_box_object_type` filter is the box's own declaration.
     429                $mb_object_type = $cmb->mb_object_type();
     430                if ( ! $cmb->is_supported_core_object_type( $mb_object_type ) ) {
     431                        $types[] = $mb_object_type;
     432                }
     433
     434                return array_unique( $types );
    351435        }
    352436
  • seo-by-rank-math/tags/1.0.280/vendor/cmb2/cmb2/includes/rest-api/CMB2_REST_Controller_Fields.php

    r3706794 r3730806  
    330330                        : $this->field->save_field( $this->request['value'] );
    331331
    332                 // If options page, save the $activity options
    333                 if ( 'options-page' == $this->request['object_type'] ) {
    334                         $this->field->args[ "value_{$activity}" ] = cmb2_options( $this->request['object_id'] )->set();
     332                // If options page, save the $activity options to the validated option key.
     333                if ( 'options-page' === $this->rest_box->cmb->object_type() ) {
     334                        $this->field->args[ "value_{$activity}" ] = cmb2_options( $this->rest_box->cmb->object_id() )->set();
    335335                }
    336336
  • seo-by-rank-math/tags/1.0.280/vendor/cmb2/cmb2/init.php

    r3721356 r3730806  
    2121 *               Andrew Norcross (@norcross / andrewnorcross.com)
    2222 *
    23  * Version:      2.13.2
     23 * Version:      2.13.3
    2424 *
    2525 * Text Domain:  cmb2
    … …  
    5454 */
    5555
    56 if ( ! class_exists( 'CMB2_Bootstrap_2132', false ) ) {
     56if ( ! class_exists( 'CMB2_Bootstrap_2133', false ) ) {
    5757
    5858        /**
    … …  
    6767         * @link      https://cmb2.io
    6868         */
    69         class CMB2_Bootstrap_2132 {
     69        class CMB2_Bootstrap_2133 {
    7070
    7171                /**
    … …  
    7575                 * @since 1.0.0
    7676                 */
    77                 const VERSION = '2.13.2';
     77                const VERSION = '2.13.3';
    7878
    7979                /**
    … …  
    8484                 * @since 2.0.0
    8585                 */
    86                 const PRIORITY = 9953;
     86                const PRIORITY = 9952;
    8787
    8888                /**
    89                  * Single instance of the CMB2_Bootstrap_2132 object
     89                 * Single instance of the CMB2_Bootstrap_2133 object
    9090                 *
    91                  * @var CMB2_Bootstrap_2132
     91                 * @var CMB2_Bootstrap_2133
    9292                 */
    9393                public static $single_instance = null;
    9494
    9595                /**
    96                  * Creates/returns the single instance CMB2_Bootstrap_2132 object
     96                 * Creates/returns the single instance CMB2_Bootstrap_2133 object
    9797                 *
    9898                 * @since  2.0.0
    99                  * @return CMB2_Bootstrap_2132 Single instance object
     99                 * @return CMB2_Bootstrap_2133 Single instance object
    100100                 */
    101101                public static function initiate() {
    … …  
    193193
    194194        // Make it so...
    195         CMB2_Bootstrap_2132::initiate();
     195        CMB2_Bootstrap_2133::initiate();
    196196
    197197}// End if().
  • seo-by-rank-math/tags/1.0.280/vendor/composer/autoload_real.php

    r3721356 r3730806  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInite176a2802c12293c70ebac20ca58300d
     5class ComposerAutoloaderInit1a6db0eae96225599b2819e07037bb60
    66{
    77    private static $loader;
    … …  
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInite176a2802c12293c70ebac20ca58300d', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit1a6db0eae96225599b2819e07037bb60', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInite176a2802c12293c70ebac20ca58300d', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit1a6db0eae96225599b2819e07037bb60', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInite176a2802c12293c70ebac20ca58300d::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit1a6db0eae96225599b2819e07037bb60::getInitializer($loader));
    3333
    3434        $loader->register(true);
    3535
    36         $includeFiles = \Composer\Autoload\ComposerStaticInite176a2802c12293c70ebac20ca58300d::$files;
     36        $includeFiles = \Composer\Autoload\ComposerStaticInit1a6db0eae96225599b2819e07037bb60::$files;
    3737        foreach ($includeFiles as $fileIdentifier => $file) {
    38             composerRequiree176a2802c12293c70ebac20ca58300d($fileIdentifier, $file);
     38            composerRequire1a6db0eae96225599b2819e07037bb60($fileIdentifier, $file);
    3939        }
    4040
    … …  
    4848 * @return void
    4949 */
    50 function composerRequiree176a2802c12293c70ebac20ca58300d($fileIdentifier, $file)
     50function composerRequire1a6db0eae96225599b2819e07037bb60($fileIdentifier, $file)
    5151{
    5252    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • seo-by-rank-math/tags/1.0.280/vendor/composer/autoload_static.php

    r3721356 r3730806  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInite176a2802c12293c70ebac20ca58300d
     7class ComposerStaticInit1a6db0eae96225599b2819e07037bb60
    88{
    99    public static $files = array (
    … …  
    750750    {
    751751        return \Closure::bind(function () use ($loader) {
    752             $loader->prefixLengthsPsr4 = ComposerStaticInite176a2802c12293c70ebac20ca58300d::$prefixLengthsPsr4;
    753             $loader->prefixDirsPsr4 = ComposerStaticInite176a2802c12293c70ebac20ca58300d::$prefixDirsPsr4;
    754             $loader->classMap = ComposerStaticInite176a2802c12293c70ebac20ca58300d::$classMap;
     752            $loader->prefixLengthsPsr4 = ComposerStaticInit1a6db0eae96225599b2819e07037bb60::$prefixLengthsPsr4;
     753            $loader->prefixDirsPsr4 = ComposerStaticInit1a6db0eae96225599b2819e07037bb60::$prefixDirsPsr4;
     754            $loader->classMap = ComposerStaticInit1a6db0eae96225599b2819e07037bb60::$classMap;
    755755
    756756        }, null, ClassLoader::class);
  • seo-by-rank-math/tags/1.0.280/vendor/composer/installed.json

    r3721356 r3730806  
    5656        {
    5757            "name": "cmb2/cmb2",
    58             "version": "v2.13.2",
    59             "version_normalized": "2.13.2.0",
     58            "version": "v2.13.3",
     59            "version_normalized": "2.13.3.0",
    6060            "source": {
    6161                "type": "git",
    6262                "url": "https://github.com/CMB2/CMB2.git",
    63                 "reference": "7b5eb968df05db393f5801ed1db3fa952e4afa07"
    64             },
    65             "dist": {
    66                 "type": "zip",
    67                 "url": "https://api.github.com/repos/CMB2/CMB2/zipball/7b5eb968df05db393f5801ed1db3fa952e4afa07",
    68                 "reference": "7b5eb968df05db393f5801ed1db3fa952e4afa07",
     63                "reference": "0f2498434d97876f6f141fa1de99c8ec87840a4a"
     64            },
     65            "dist": {
     66                "type": "zip",
     67                "url": "https://api.github.com/repos/CMB2/CMB2/zipball/0f2498434d97876f6f141fa1de99c8ec87840a4a",
     68                "reference": "0f2498434d97876f6f141fa1de99c8ec87840a4a",
    6969                "shasum": ""
    7070            },
    … …  
    7979                "composer/installers": "~1.0"
    8080            },
    81             "time": "2026-09-30T04:03:32+00:00",
     81            "time": "2026-10-03T19:02:06+00:00",
    8282            "type": "wordpress-plugin",
    8383            "installation-source": "dist",
  • seo-by-rank-math/tags/1.0.280/vendor/composer/installed.php

    r3721356 r3730806  
    22    'root' => array(
    33        'name' => 'rankmath/seo-by-rank-math',
    4         'pretty_version' => 'v1.0.280-beta',
    5         'version' => '1.0.280.0-beta',
    6         'reference' => '1503df285038a65228b7a5f98d35493c0a81999a',
     4        'pretty_version' => 'v1.0.280',
     5        'version' => '1.0.280.0',
     6        'reference' => '5f39f15d5bba2cc2e2134ec52bb55272fff3042b',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
    … …  
    2121        ),
    2222        'cmb2/cmb2' => array(
    23             'pretty_version' => 'v2.13.2',
    24             'version' => '2.13.2.0',
    25             'reference' => '7b5eb968df05db393f5801ed1db3fa952e4afa07',
     23            'pretty_version' => 'v2.13.3',
     24            'version' => '2.13.3.0',
     25            'reference' => '0f2498434d97876f6f141fa1de99c8ec87840a4a',
    2626            'type' => 'wordpress-plugin',
    2727            'install_path' => __DIR__ . '/../cmb2/cmb2',
    … …  
    3939        ),
    4040        'rankmath/seo-by-rank-math' => array(
    41             'pretty_version' => 'v1.0.280-beta',
    42             'version' => '1.0.280.0-beta',
    43             'reference' => '1503df285038a65228b7a5f98d35493c0a81999a',
     41            'pretty_version' => 'v1.0.280',
     42            'version' => '1.0.280.0',
     43            'reference' => '5f39f15d5bba2cc2e2134ec52bb55272fff3042b',
    4444            'type' => 'wordpress-plugin',
    4545            'install_path' => __DIR__ . '/../../',
  • seo-by-rank-math/trunk/includes/helpers/class-wordpress.php

    r3531717 r3730806  
    831831         */
    832832        public static function filetype_and_ext( $types, $file, $filename ) {
    833                 if ( false !== strpos( $filename, '.json' ) ) {
     833                // Validate the real trailing extension so names like `file.json.php` are rejected.
     834                $extension = strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
     835                if ( 'json' === $extension ) {
    834836                        $types['ext']  = 'json';
    835837                        $types['type'] = 'application/json';
    836                 } elseif ( false !== strpos( $filename, '.txt' ) ) {
     838                } elseif ( 'txt' === $extension ) {
    837839                        $types['ext']  = 'txt';
    838840                        $types['type'] = 'text/plain';
  • seo-by-rank-math/trunk/includes/modules/analytics/class-objects.php

    r3324705 r3730806  
    6262                ];
    6363                $field_name = 'seo_score';
    64                 $per_page   = $request->get_param( 'per_page' ) ? sanitize_text_field( $request->get_param( 'per_page' ) ) : 25;
    65                 $offset     = ( sanitize_text_field( $request->get_param( 'page' ) ) - 1 ) * $per_page;
     64                $per_page   = absint( $request->get_param( 'per_page' ) );
     65                $per_page   = $per_page ? min( $per_page, 100 ) : 25;
     66                $offset     = ( max( 1, absint( $request->get_param( 'page' ) ) ) - 1 ) * $per_page;
    6667
    6768                // Construct SQL condition based on filter parameters.
  • seo-by-rank-math/trunk/includes/modules/analytics/rest/class-rest.php

    r3531717 r3730806  
    4949                        'postsRowsByObjects'  => [
    5050                                'callback' => [ Stats::get(), 'get_posts_rows_by_objects' ],
     51                                'args'     => [
     52                                        'page'     => [
     53                                                'description'       => esc_html__( 'Page number.', 'seo-by-rank-math' ),
     54                                                'type'              => 'integer',
     55                                                'required'          => false,
     56                                                'sanitize_callback' => 'absint',
     57                                        ],
     58                                        'per_page' => [
     59                                                'description'       => esc_html__( 'Results per page.', 'seo-by-rank-math' ),
     60                                                'type'              => 'integer',
     61                                                'required'          => false,
     62                                                'sanitize_callback' => 'absint',
     63                                        ],
     64                                ],
    5165                        ],
    5266                        'post/(?P<id>\d+)'    => [
  • seo-by-rank-math/trunk/includes/modules/redirections/class-table.php

    r3531717 r3730806  
    251251                                'activate'   => '<a href="' . $url . '" data-action="activate" class="rank-math-redirection-action">' . esc_html__( 'Activate', 'seo-by-rank-math' ) . '</a>',
    252252                                'trash'      => '<a href="' . $url . '" data-action="trash" class="rank-math-redirection-action">' . esc_html__( 'Trash', 'seo-by-rank-math' ) . '</a>',
    253                                 'view'       => '<a href="' . $view_url . '" rel="bookmark">' . esc_html__( 'View', 'seo-by-rank-math' ) . '</a>',
     253                                'view'       => '<a href="' . esc_url( $view_url ) . '" rel="bookmark">' . esc_html__( 'View', 'seo-by-rank-math' ) . '</a>',
    254254                        ]
    255255                );
  • seo-by-rank-math/trunk/includes/modules/seo-analysis/class-seo-analyzer.php

    r3551529 r3730806  
    9090
    9191                $this->action( 'init', 'set_url' );
    92                 $this->maybe_clear_storage();
     92                $this->action( 'admin_init', 'maybe_clear_storage' );
    9393
    9494                $this->ajax( 'analyze', 'analyze_me' );
    … …  
    236236         * Clear stored results if needed.
    237237         */
    238         private function maybe_clear_storage() {
    239                 if ( '1' === Param::request( 'clear_results' ) ) {
    240                         delete_option( 'rank_math_seo_analysis_results' );
    241                         delete_option( 'rank_math_seo_analysis_date' );
    242                         Helper::redirect( Security::remove_query_arg_raw( 'clear_results' ) );
    243                         exit;
    244                 }
     238        public function maybe_clear_storage() {
     239                if ( '1' !== Param::request( 'clear_results' ) ) {
     240                        return;
     241                }
     242
     243                if (
     244                        ! Helper::has_cap( 'site_analysis' ) ||
     245                        ! wp_verify_nonce( Param::request( 'security' ), 'rank-math-ajax-nonce' )
     246                ) {
     247                        return;
     248                }
     249
     250                delete_option( 'rank_math_seo_analysis_results' );
     251                delete_option( 'rank_math_seo_analysis_date' );
     252                Helper::redirect( Security::remove_query_arg_raw( [ 'clear_results', 'security' ] ) );
     253                exit;
    245254        }
    246255
  • seo-by-rank-math/trunk/includes/modules/status/class-import-export-settings.php

    r3531717 r3730806  
    5151                $wp_filesystem = Helper::get_filesystem();
    5252                if ( is_null( $wp_filesystem ) || ! Helper::is_filesystem_direct() ) {
     53                        \wp_delete_file( $file['file'] );
    5354                        return [
    5455                                'error' => esc_html__( 'Uploaded file could not be read.', 'seo-by-rank-math' ),
  • seo-by-rank-math/trunk/languages/rank-math.pot

    r3721356 r3730806  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Rank Math SEO 1.0.280-beta\n"
     5"Project-Id-Version: Rank Math SEO 1.0.280\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/seo-by-rank-math\n"
    77"Last-Translator: Rank Math <support@rankmath.com>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-09-30T12:22:53+00:00\n"
     12"POT-Creation-Date: 2026-10-06T05:13:11+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    31533153msgstr ""
    31543154
     3155msgid "Page number."
     3156msgstr ""
     3157
     3158msgid "Results per page."
     3159msgstr ""
     3160
    31553161msgid "Post ID."
    31563162msgstr ""
    31573163
    31583164msgid "Post Type."
    3159 msgstr ""
    3160 
    3161 msgid "Page number."
    3162 msgstr ""
    3163 
    3164 msgid "Results per page."
    31653165msgstr ""
    31663166
  • seo-by-rank-math/trunk/rank-math.php

    r3721356 r3730806  
    1010 * @wordpress-plugin
    1111 * Plugin Name:       Rank Math SEO
    12  * Version:           1.0.280-beta
     12 * Version:           1.0.280
    1313 * Plugin URI:        https://rankmath.com/
    1414 * Description:       Rank Math SEO is the Best WordPress SEO plugin with the features of many SEO and AI SEO tools in a single package to help multiply your SEO traffic.
    … …  
    3535         * @var string
    3636         */
    37         public $version = '1.0.280-beta';
     37        public $version = '1.0.280';
    3838
    3939        /**
  • seo-by-rank-math/trunk/readme.txt

    r3706794 r3730806  
    66Requires at least: 6.7
    77Requires PHP: 7.4
    8 Stable tag: 1.0.279
     8Stable tag: 1.0.280
    99License: GPLv3 or later
    1010License URI: https://www.gnu.org/licenses/gpl-3.0.txt
    … …  
    429429== Changelog ==
    430430
    431 = 1.0.279 [Sep 22, 2026] =
    432 - [HUGE!] Added  Gemini Tracking, Multi-Language Support, and Daily/Weekly/Monthly refresh options to [AI Visibility] (https://rankmath.com/ai-visibility/?play-video=gS5-DFQrSxs).
    433 - Added `rank-math/get-404-logs` and `rank-math/get-sitemap-status` MCP tools to expose [404 Monitor](https://rankmath.com/kb/monitor-404-errors/) log data and sitemap status/sub-type data to AI assistants.
    434 - Improved [llms.txt](https://rankmath.com/kb/llms-txt/) output to conform to the latest llms.txt specification.
    435 - Fixed AI Visibility Brand detail page was missing data shown on the dashboard, and the "Analyses in last 24h" label was misleading.
    436 - Fixed `rank-math/get-post-links` MCP tool to correctly enforce per-post capability checks.
    437 - Fixed Link Suggestions was building link HTML by unescaped string concatenation, allowing unsafe URL and link text values into block content.
    438 - Fixed Analytics Objects table `page` column was not showing accurate values for WPML translated pages.
     431= 1.0.280 [Oct 06, 2026] =
     432- Improved [Sitemaps](https://rankmath.com/kb/configure-sitemaps/) can now be fully pre-generated with the `wp rankmath sitemap generate` WP-CLI command, so large sites serve cached sitemap files instead of building them on every visit.
     433- Improved plugin security with additional input validation and output escaping hardening.
     434- Fixed [Analytics](https://rankmath.com/kb/analytics/) dashboard sections showing `N/A` after data fetching was completed.
     435- Fixed [Polylang](https://rankmath.com/kb/polylang-compatibility/) meta translations that were not showing for secondary languages when Polylang PRO was active.
     436- Fixed a database error being logged when saving user profiles with SEO Controls enabled for [Author Archives](https://rankmath.com/kb/titles-and-meta/#author-archives).
    439437
    440438
  • seo-by-rank-math/trunk/vendor/autoload.php

    r3721356 r3730806  
    2323require_once __DIR__ . '/composer/autoload_real.php';
    2424
    25 return ComposerAutoloaderInite176a2802c12293c70ebac20ca58300d::getLoader();
     25return ComposerAutoloaderInit1a6db0eae96225599b2819e07037bb60::getLoader();
  • seo-by-rank-math/trunk/vendor/cmb2/cmb2/css/cmb2-rtl.css

    r3721356 r3730806  
    11/*!
    2  * CMB2 - v2.13.2 - 2026-09-30
     2 * CMB2 - v2.13.3 - 2026-10-03
    33 * https://cmb2.io
    44 * Copyright (c) 2026
  • seo-by-rank-math/trunk/vendor/cmb2/cmb2/css/cmb2-rtl.min.css

    r3721356 r3730806  
    1 /*! CMB2 - v2.13.2 - 2026-09-30 | https://cmb2.io | Copyright (c) 2026 CMB2 team | Licensed GPLv2 */
     1/*! CMB2 - v2.13.3 - 2026-10-03 | https://cmb2.io | Copyright (c) 2026 CMB2 team | Licensed GPLv2 */
    22/*!
    3  * CMB2 - v2.13.2 - 2026-09-30
     3 * CMB2 - v2.13.3 - 2026-10-03
    44 * https://cmb2.io
    55 * Copyright (c) 2026
  • seo-by-rank-math/trunk/vendor/cmb2/cmb2/css/cmb2.css

    r3721356 r3730806  
    11/*!
    2  * CMB2 - v2.13.2 - 2026-09-30
     2 * CMB2 - v2.13.3 - 2026-10-03
    33 * https://cmb2.io
    44 * Copyright (c) 2026
  • seo-by-rank-math/trunk/vendor/cmb2/cmb2/css/cmb2.min.css

    r3721356 r3730806  
    1 /*! CMB2 - v2.13.2 - 2026-09-30 | https://cmb2.io | Copyright (c) 2026 CMB2 team | Licensed GPLv2 */
     1/*! CMB2 - v2.13.3 - 2026-10-03 | https://cmb2.io | Copyright (c) 2026 CMB2 team | Licensed GPLv2 */
    22/*!
    3  * CMB2 - v2.13.2 - 2026-09-30
     3 * CMB2 - v2.13.3 - 2026-10-03
    44 * https://cmb2.io
    55 * Copyright (c) 2026
  • seo-by-rank-math/trunk/vendor/cmb2/cmb2/includes/rest-api/CMB2_REST_Controller.php

    r3706794 r3730806  
    341341                } else {
    342342
    343                         if ( isset( $this->request['object_id'] ) ) {
    344                                 $this->rest_box->cmb->object_id( sanitize_text_field( $this->request['object_id'] ) );
     343                        $object_id   = isset( $this->request['object_id'] ) ? sanitize_text_field( $this->request['object_id'] ) : null;
     344                        $object_type = isset( $this->request['object_type'] ) ? sanitize_text_field( $this->request['object_type'] ) : null;
     345
     346                        $error = $this->validate_request_object( $object_type, $object_id );
     347                        if ( is_wp_error( $error ) ) {
     348                                $this->rest_box = $error;
     349                                return;
    345350                        }
    346351
    347                         if ( isset( $this->request['object_type'] ) ) {
    348                                 $this->rest_box->cmb->object_type( sanitize_text_field( $this->request['object_type'] ) );
     352                        if ( null !== $object_id ) {
     353                                $this->rest_box->cmb->object_id( $object_id );
    349354                        }
    350                 }
     355
     356                        if ( null !== $object_type ) {
     357                                $this->rest_box->cmb->object_type( $object_type );
     358                        }
     359                }
     360        }
     361
     362        /**
     363         * Validates the requested object_type/object_id against the box's registration.
     364         *
     365         * The requested object_type selects the storage the box reads from and writes
     366         * to, so it has to be a storage type the box was registered for. For the
     367         * options-page type, the object_id is the option name, so it has to be one of
     368         * the box's own option keys. This is request validation, so it is applied
     369         * regardless of the permissions filters.
     370         *
     371         * @since  2.13.3
     372         *
     373         * @param  string|null $object_type The requested object type, if any.
     374         * @param  string|null $object_id   The requested object id, if any.
     375         *
     376         * @return true|WP_Error            True if valid, or a WP_Error.
     377         */
     378        protected function validate_request_object( $object_type, $object_id ) {
     379                if ( null === $object_type || '' === $object_type ) {
     380                        return true;
     381                }
     382
     383                $cmb = $this->rest_box->cmb;
     384
     385                if ( ! in_array( $object_type, $this->get_box_storage_types( $cmb ), true ) ) {
     386                        return new WP_Error( 'cmb2_rest_invalid_object_type', __( 'The object_type parameter does not match an object type this box is registered for.', 'cmb2' ), array(
     387                                'status' => 400,
     388                        ) );
     389                }
     390
     391                if (
     392                        'options-page' === $object_type
     393                        && null !== $object_id
     394                        && '' !== $object_id
     395                        && ! in_array( $object_id, array_map( 'strval', (array) $cmb->options_page_keys() ), true )
     396                ) {
     397                        return new WP_Error( 'cmb2_rest_invalid_object_id', __( 'The object_id parameter does not match an option key this box is registered for.', 'cmb2' ), array(
     398                                'status' => 400,
     399                        ) );
     400                }
     401
     402                return true;
     403        }
     404
     405        /**
     406         * Gets the storage object types for a box's registered object types.
     407         *
     408         * Registered types that are not core object types (post types) store as 'post',
     409         * matching CMB2::mb_object_type().
     410         *
     411         * @since  2.13.3
     412         *
     413         * @param  CMB2 $cmb The box.
     414         *
     415         * @return array     The storage object types.
     416         */
     417        protected function get_box_storage_types( CMB2 $cmb ) {
     418                $types = array();
     419
     420                if ( $cmb->is_options_page_mb() ) {
     421                        $types[] = 'options-page';
     422                }
     423
     424                foreach ( $cmb->box_types( array( 'post' ) ) as $type ) {
     425                        $types[] = $cmb->is_supported_core_object_type( $type ) ? $type : 'post';
     426                }
     427
     428                // A non-core type from the `cmb2_set_box_object_type` filter is the box's own declaration.
     429                $mb_object_type = $cmb->mb_object_type();
     430                if ( ! $cmb->is_supported_core_object_type( $mb_object_type ) ) {
     431                        $types[] = $mb_object_type;
     432                }
     433
     434                return array_unique( $types );
    351435        }
    352436
  • seo-by-rank-math/trunk/vendor/cmb2/cmb2/includes/rest-api/CMB2_REST_Controller_Fields.php

    r3706794 r3730806  
    330330                        : $this->field->save_field( $this->request['value'] );
    331331
    332                 // If options page, save the $activity options
    333                 if ( 'options-page' == $this->request['object_type'] ) {
    334                         $this->field->args[ "value_{$activity}" ] = cmb2_options( $this->request['object_id'] )->set();
     332                // If options page, save the $activity options to the validated option key.
     333                if ( 'options-page' === $this->rest_box->cmb->object_type() ) {
     334                        $this->field->args[ "value_{$activity}" ] = cmb2_options( $this->rest_box->cmb->object_id() )->set();
    335335                }
    336336
  • seo-by-rank-math/trunk/vendor/cmb2/cmb2/init.php

    r3721356 r3730806  
    2121 *               Andrew Norcross (@norcross / andrewnorcross.com)
    2222 *
    23  * Version:      2.13.2
     23 * Version:      2.13.3
    2424 *
    2525 * Text Domain:  cmb2
    … …  
    5454 */
    5555
    56 if ( ! class_exists( 'CMB2_Bootstrap_2132', false ) ) {
     56if ( ! class_exists( 'CMB2_Bootstrap_2133', false ) ) {
    5757
    5858        /**
    … …  
    6767         * @link      https://cmb2.io
    6868         */
    69         class CMB2_Bootstrap_2132 {
     69        class CMB2_Bootstrap_2133 {
    7070
    7171                /**
    … …  
    7575                 * @since 1.0.0
    7676                 */
    77                 const VERSION = '2.13.2';
     77                const VERSION = '2.13.3';
    7878
    7979                /**
    … …  
    8484                 * @since 2.0.0
    8585                 */
    86                 const PRIORITY = 9953;
     86                const PRIORITY = 9952;
    8787
    8888                /**
    89                  * Single instance of the CMB2_Bootstrap_2132 object
     89                 * Single instance of the CMB2_Bootstrap_2133 object
    9090                 *
    91                  * @var CMB2_Bootstrap_2132
     91                 * @var CMB2_Bootstrap_2133
    9292                 */
    9393                public static $single_instance = null;
    9494
    9595                /**
    96                  * Creates/returns the single instance CMB2_Bootstrap_2132 object
     96                 * Creates/returns the single instance CMB2_Bootstrap_2133 object
    9797                 *
    9898                 * @since  2.0.0
    99                  * @return CMB2_Bootstrap_2132 Single instance object
     99                 * @return CMB2_Bootstrap_2133 Single instance object
    100100                 */
    101101                public static function initiate() {
    … …  
    193193
    194194        // Make it so...
    195         CMB2_Bootstrap_2132::initiate();
     195        CMB2_Bootstrap_2133::initiate();
    196196
    197197}// End if().
  • seo-by-rank-math/trunk/vendor/composer/autoload_real.php

    r3721356 r3730806  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInite176a2802c12293c70ebac20ca58300d
     5class ComposerAutoloaderInit1a6db0eae96225599b2819e07037bb60
    66{
    77    private static $loader;
    … …  
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInite176a2802c12293c70ebac20ca58300d', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit1a6db0eae96225599b2819e07037bb60', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInite176a2802c12293c70ebac20ca58300d', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit1a6db0eae96225599b2819e07037bb60', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInite176a2802c12293c70ebac20ca58300d::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit1a6db0eae96225599b2819e07037bb60::getInitializer($loader));
    3333
    3434        $loader->register(true);
    3535
    36         $includeFiles = \Composer\Autoload\ComposerStaticInite176a2802c12293c70ebac20ca58300d::$files;
     36        $includeFiles = \Composer\Autoload\ComposerStaticInit1a6db0eae96225599b2819e07037bb60::$files;
    3737        foreach ($includeFiles as $fileIdentifier => $file) {
    38             composerRequiree176a2802c12293c70ebac20ca58300d($fileIdentifier, $file);
     38            composerRequire1a6db0eae96225599b2819e07037bb60($fileIdentifier, $file);
    3939        }
    4040
    … …  
    4848 * @return void
    4949 */
    50 function composerRequiree176a2802c12293c70ebac20ca58300d($fileIdentifier, $file)
     50function composerRequire1a6db0eae96225599b2819e07037bb60($fileIdentifier, $file)
    5151{
    5252    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • seo-by-rank-math/trunk/vendor/composer/autoload_static.php

    r3721356 r3730806  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInite176a2802c12293c70ebac20ca58300d
     7class ComposerStaticInit1a6db0eae96225599b2819e07037bb60
    88{
    99    public static $files = array (
    … …  
    750750    {
    751751        return \Closure::bind(function () use ($loader) {
    752             $loader->prefixLengthsPsr4 = ComposerStaticInite176a2802c12293c70ebac20ca58300d::$prefixLengthsPsr4;
    753             $loader->prefixDirsPsr4 = ComposerStaticInite176a2802c12293c70ebac20ca58300d::$prefixDirsPsr4;
    754             $loader->classMap = ComposerStaticInite176a2802c12293c70ebac20ca58300d::$classMap;
     752            $loader->prefixLengthsPsr4 = ComposerStaticInit1a6db0eae96225599b2819e07037bb60::$prefixLengthsPsr4;
     753            $loader->prefixDirsPsr4 = ComposerStaticInit1a6db0eae96225599b2819e07037bb60::$prefixDirsPsr4;
     754            $loader->classMap = ComposerStaticInit1a6db0eae96225599b2819e07037bb60::$classMap;
    755755
    756756        }, null, ClassLoader::class);
  • seo-by-rank-math/trunk/vendor/composer/installed.json

    r3721356 r3730806  
    5656        {
    5757            "name": "cmb2/cmb2",
    58             "version": "v2.13.2",
    59             "version_normalized": "2.13.2.0",
     58            "version": "v2.13.3",
     59            "version_normalized": "2.13.3.0",
    6060            "source": {
    6161                "type": "git",
    6262                "url": "https://github.com/CMB2/CMB2.git",
    63                 "reference": "7b5eb968df05db393f5801ed1db3fa952e4afa07"
    64             },
    65             "dist": {
    66                 "type": "zip",
    67                 "url": "https://api.github.com/repos/CMB2/CMB2/zipball/7b5eb968df05db393f5801ed1db3fa952e4afa07",
    68                 "reference": "7b5eb968df05db393f5801ed1db3fa952e4afa07",
     63                "reference": "0f2498434d97876f6f141fa1de99c8ec87840a4a"
     64            },
     65            "dist": {
     66                "type": "zip",
     67                "url": "https://api.github.com/repos/CMB2/CMB2/zipball/0f2498434d97876f6f141fa1de99c8ec87840a4a",
     68                "reference": "0f2498434d97876f6f141fa1de99c8ec87840a4a",
    6969                "shasum": ""
    7070            },
    … …  
    7979                "composer/installers": "~1.0"
    8080            },
    81             "time": "2026-09-30T04:03:32+00:00",
     81            "time": "2026-10-03T19:02:06+00:00",
    8282            "type": "wordpress-plugin",
    8383            "installation-source": "dist",
  • seo-by-rank-math/trunk/vendor/composer/installed.php

    r3721356 r3730806  
    22    'root' => array(
    33        'name' => 'rankmath/seo-by-rank-math',
    4         'pretty_version' => 'v1.0.280-beta',
    5         'version' => '1.0.280.0-beta',
    6         'reference' => '1503df285038a65228b7a5f98d35493c0a81999a',
     4        'pretty_version' => 'v1.0.280',
     5        'version' => '1.0.280.0',
     6        'reference' => '5f39f15d5bba2cc2e2134ec52bb55272fff3042b',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
    … …  
    2121        ),
    2222        'cmb2/cmb2' => array(
    23             'pretty_version' => 'v2.13.2',
    24             'version' => '2.13.2.0',
    25             'reference' => '7b5eb968df05db393f5801ed1db3fa952e4afa07',
     23            'pretty_version' => 'v2.13.3',
     24            'version' => '2.13.3.0',
     25            'reference' => '0f2498434d97876f6f141fa1de99c8ec87840a4a',
    2626            'type' => 'wordpress-plugin',
    2727            'install_path' => __DIR__ . '/../cmb2/cmb2',
    … …  
    3939        ),
    4040        'rankmath/seo-by-rank-math' => array(
    41             'pretty_version' => 'v1.0.280-beta',
    42             'version' => '1.0.280.0-beta',
    43             'reference' => '1503df285038a65228b7a5f98d35493c0a81999a',
     41            'pretty_version' => 'v1.0.280',
     42            'version' => '1.0.280.0',
     43            'reference' => '5f39f15d5bba2cc2e2134ec52bb55272fff3042b',
    4444            'type' => 'wordpress-plugin',
    4545            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.