サポート » バグ報告と提案 » WordPressで濁点ありの日本語ファイルをsafariでも表示でされない。

  • miya

    (@linkstory)


    WordpressのメディアにPDFをアップした時に濁点のついた日本語ファイルのみ、safariで表示されない状況です。
    ごくまれに濁点がついていても表示されることはあります。

    ファイル名に日本語を使うのは極力避けた方がいいとは思いますが、今回は日本語で管理しなければならなく、
    使用していました。2016年の9月から10月前後までは、問題なく日本語でも濁音ありでもすべてのブラウザーで表示されていました。

    現状は対策として、safari用に先にFTPでアップし、chromeなど用にメディアからファイルを投稿すると表示されるので、その応急処置で行っています。(先にsafari用のPDFをFTPで上げておけばsafariには表示されますが、chromeでは表示されないので同じファイルをメディアにもあげています)

    その状況ですので、サーバー上には常に2つファイルがアップされています。(ファイルは全く一緒ですが上書きされず2つに分かれます)

    <情報>
    ・wordpress バージョン4.7(4.6.1でも同様の状況)
    ・WP Multibyte Patchは有効済み 
     →$wpmp_conf[‘patch_sanitize_file_name’] = false; trueからfalseに変更
    ・chrome、IE、firefoxは表示OK

6件の返信を表示中 - 16 - 21件目 (全21件中)
  • 訂正

    
    add_filter( 'media_send_to_editor', 'raindrops_pdf_send_to_editor', 10, 3 );
    
    function raindrops_pdf_send_to_editor( $html, $attachment_id, $attachment ) {
    
    		$post = get_post( $attachment_id );
    
    		if ( substr( $post->post_mime_type, 0, 15 ) == 'application/pdf' ) {//ファイルがPDFの場合
    			
    			$check_encoded = get_url_in_content( $html );//URLを取得して
    			
    			if( mb_strlen( $check_encoded ) !== strlen( $check_encoded ) && ! preg_match('!%[0-9A-Z][0-9A-Z]+!', $check_encoded ) ) {
    			//mb_strlen( $check_encoded ) !== strlen( $check_encoded )は、日本語を簡易判定
    			//preg_match('!%[0-9A-Z][0-9A-Z]+!', $check_encoded ) 既にエンコードされていないかを確認
    	
    				$encoded_url = esc_url( $check_encoded );				
    				$html = str_replace( $check_encoded, $encoded_url, $html );//URLを置換
                                    
    			}
                        return $html;		
    		}
    		return $html;
    }
    

    二重エンコード

    http://qiita.com/khsk/items/3440ba4f363893434ee4

    トピック投稿者 miya

    (@linkstory)

    nobita様

    ありがとうございます!!
    できました!

    safariのみなのでどうしていいかわからず、このところ1ヶ月くらいずっと悩んでいたので本当に助かりました。
    前回いただいた対策なども、今後勉強して導入していきます。

    トピック投稿者 miya

    (@linkstory)

    nobita様

    1点ご相談なのですが、

    add_filter( 'media_send_to_editor', 'raindrops_pdf_send_to_editor', 10, 3 );

    の部分の、
    raindrops_pdf_send_to_editor

    部分はこちらのwordressのテーマのfuncitionにこのまま記入しても問題ないのでしょうか?
    書き換えたほうがよろしいでしょうか?

    何から何まで質問してしまい申し訳ございませんが、よろしくお願い致します。

    トピック投稿者 miya

    (@linkstory)

    dd_filter( 'media_send_to_editor', 'test_pdf_send_to_editor', 10, 3 );
    
    function test_pdf_send_to_editor( $html, $attachment_id, $attachment ) 

    と各自2箇所変更するということですね。
    大変失礼しました。

    サーバーのPHPバージョンはどうでしょう

    それが md5 に変換するということです。
    「日本語ファイル名」で表示させたいという主旨には適切ではないでしょうか。
    濁点が仕えたり仕えなかったりというのは、文字コードが被るファイルが既にあるということではないかしら。

6件の返信を表示中 - 16 - 21件目 (全21件中)
  • トピック「WordPressで濁点ありの日本語ファイルをsafariでも表示でされない。」には新たに返信することはできません。