WPML
ステータス
未解決
関連するプラグイン/テーマ
RSVP Pro
トピックタグ
Compatibility

問題の概要

RSVP Proプラグインを使用している場合、WPMLの使用時にフロントエンドで一部の文字列が翻訳されて表示されない問題が発生することがあります。この問題は通常、文字列の一意のキーがシステムで設定された文字数制限を超えるために発生し、結果としてキーの不一致や翻訳されない文字列が生じます。

回避策

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


  • app/public/wp-content/plugins/rsvp-pro-plugin/includes/rsvp-utils.inc.php ファイルを開きます。

  • 1069行目を探します。

  • 次のコードを:
    function rsvp_pro_get_dynamic_translated_string( $key_name, $string, $event_id ) {
    	$text = $string;
    
    	if ( function_exists( 'pll__' ) ) {
    		$text = pll__( $string );
    	}
    
    	if ( has_filter( 'wpml_translate_string' ) ) {
    		$event_name = rsvp_pro_get_event_name( $event_id );
    		$package    = array(
    			'kind'  => "RSVPPro - {$event_id}",
    			'name'  => "rsvp-pro-plugin-{$event_id}",
    			'title' => "RSVP Pro Plugin - {$event_name}",
    		);
    		$key_name   = strtolower( $key_name );
    		$key_name   = str_replace( ' ', '-', $key_name );
    		$text       = apply_filters( 'wpml_translate_string', $string, $key_name, $package );
    	}
    
    	return $text;
    }

  • 次のように置き換えます:
    function rsvp_pro_get_dynamic_translated_string( $key_name, $string, $event_id ) {
    	$text = $string;
    
    	if ( function_exists( 'pll__' ) ) {
    		$text = pll__( $string );
    	}
    
    	if ( has_filter( 'wpml_translate_string' ) ) {
    		$event_name = rsvp_pro_get_event_name( $event_id );
    		$package    = array(
    			'kind'  => "RSVPPro - {$event_id}",
    			'name'  => "rsvp-pro-plugin-{$event_id}",
    			'title' => "RSVP Pro Plugin - {$event_name}",
    		);
    		$key_name   = strtolower( $key_name );
    		$key_name   = str_replace( ' ', '-', $key_name );
    
    		// WPML Workaround for compsupp-7503
    		$key_name = substr($key_name, 0, 160);
    		
    		$text       = apply_filters( 'wpml_translate_string', $string, $key_name, $package );
    	}
    
    	return $text;
    }

すべての既知の問題 →