- ステータス
- 解決済み
- 解決されたバージョン
- WP Rocket lastest version
問題の概要
関数rocket_clean_domainは1つのパラメーターを受け取ります: $lang
通常はパラメーターなしで呼び出されますが、間違ったパラメーターが送信されるケースが1つあります:
wp-rocket/inc/common/purge.php 22行目
add_action( 'update_option_theme_mods_' . get_option( 'stylesheet' ), 'rocket_clean_domain' ); // When location of a menu is updated
このフィルターはrocket_clean_domainに間違ったパラメーターを送信します(文字列ではなく配列)。
回避策
テーマディレクトリで次のパスをたどり、このファイル(wp-rocket/inc/functions/files.php)を開きます。
以下のコードを見つけます。
function rocket_clean_domain( $lang = '' ) {
$urls = ( ! $lang || is_object( $lang ) ) ? get_rocket_i18n_uri() : get_rocket_i18n_home_url( $lang );
解決策の1つは、その条件にis_array()を追加することです。以下のコードを参照してください。
function rocket_clean_domain( $lang = '' ) {
$urls = ( ! $lang || is_object( $lang ) || is_array( $lang ) ) ? get_rocket_i18n_uri() : get_rocket_i18n_home_url( $lang );
これにより、配列がパラメータとして送信されなくなり、すべてが期待どおりに機能します。