WPML
ステータス
開発者により解決済み
関連するプラグイン/テーマ
Royal Elementor Addons
トピックタグ
Compatibility

問題の概要

Royal Elementor Addonsプラグインのユーザーは、新しいPHPバージョン8.1以降の環境で動作している場合、非推奨関数のエラーメッセージが表示されることがあります:


Deprecated: urldecode(): Passing null to parameter #1 ($string) of type string is deprecated in .../wp-includes/post.php on line 5864

回避策

続行する前に、必ずサイトの完全なバックアップを取得してください。


  • …/wp-content/plugins/royal-elementor-addons/classes/utilities.phpファイルを開きます。

  • 396行目を探します。

  • 変更前:
    		// tmp remove after 2 months
    		$templates_loop = new \WP_Query([
    			'post_type' => 'wpr_templates',
    			'name' => $template,
    			'posts_per_page' => 1,
    		]);
    		
    		if ( ! $templates_loop->have_posts() ) {
    			if ( defined('ICL_LANGUAGE_CODE') ) {
    				$original_post = get_page_by_path($template, OBJECT, 'wpr_templates');
    				if ( $original_post ) {
    					$original_post_id = $original_post->ID;
    					$language_code = ICL_LANGUAGE_CODE;
    				
    					$translated_post_id = icl_object_id($original_post_id, 'wpr_templates', false, $language_code);
    					
    					if ( $translated_post_id ) {
    						$translated_post = get_post($translated_post_id);
    						$translated_slug = $translated_post->post_name;
    					
    						if ( $translated_slug ) {
    							$template = $translated_slug;
    						} else {
    							$template = null;
    						}
    					}
    				}
    			} else {
    				$template = null;
    			}
    		} else {
    			$template = $template;
    		}

  • 変更後:
    		// Ensure template is not null or empty before querying the database
    		// compsupp-7576 fix
    		if (!empty($template)) {		
    			// tmp remove after 2 months
    			$templates_loop = new \WP_Query([
    				'post_type' => 'wpr_templates',
    				'name' => $template,
    				'posts_per_page' => 1,
    			]);
    			
    			if ( ! $templates_loop->have_posts() ) {
    				if ( defined('ICL_LANGUAGE_CODE') ) {
    					$original_post = get_page_by_path($template, OBJECT, 'wpr_templates');
    					if ( $original_post ) {
    						$original_post_id = $original_post->ID;
    						$language_code = ICL_LANGUAGE_CODE;
    					
    						$translated_post_id = icl_object_id($original_post_id, 'wpr_templates', false, $language_code);
    						
    						if ( $translated_post_id ) {
    							$translated_post = get_post($translated_post_id);
    							$translated_slug = $translated_post->post_name;
    						
    							if ( $translated_slug ) {
    								$template = $translated_slug;
    							} else {
    								$template = null;
    							}
    						}
    					}
    				} else {
    					$template = null;
    				}
    			} else {
    				$template = $template;
    			}
    
    		} // compsupp-7576 fix

すべての既知の問題 →