サポート » プラグイン » Hammyを使うとAlt,Titleが正しく表示されない

  • 解決済 tamahome

    (@tamahome)


    デバイス毎に画像サイズを変えたく、Hammyをインストールしました。
    Wordpress付属の「メディアを追加」で画像を挿入。代替テキスト、画像タイトル属性を日本語で入力すると、UTF-7?で出力され、正しく表示されません。

    <figure class="hammy-responsive alignnone wp-image-828 size-full" title="目標達成でヤッター!" data-media="http://XXX.com/wp-content/uploads/cache/2015/08/yatta-/3244503980.jpg" data-media320="http://XXX.com/wp-content/uploads/cache/2015/08/yatta-/1452751410.jpg"><noscript><img src="http://XXX.com/wp-content/uploads/2015/08/yatta-.jpg" alt="目標達成でヤッター!" title="目標達成でヤッター!" width="640" height="427"></noscript></figure>

    Hammy以外のプラグインを停止して、ページをリロードしても症状は変わりませんでした。
    自作テーマを利用しています。テーマを変えても変わりませんでした。

    mb_http_output('UTF-8');
    echo mb_http_output(), PHP_EOL;

    を、Hammy.phpに追加してみましたがだめでした。
    WP Multibyte Patchはバージョン 2.4です。

    どうしたら文字化けを解消できるでしょうか。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • Hammy 自体が日本語(マルチバイト文字)を考慮していないので、今後のメンテナンスのためにも、他のプラグインを探されたほうがよいと思います。

    ところで、文字化けする原因は上記のとおりです(日本語もシングルバイト文字として処理されてしまう)。プラグインのファイル hammy.php の 116 行目で次のようなコードを使って、img タグの中身を取り出しています。$value には img タグの文字列が入ります。

    $doc->loadHTML( $value );

    これを無理矢理解決するには、文字コードを指定してあげればよさそうです。ただし検証していません。

    $doc->loadHTML( '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">' . $value );

    スレッド開始 tamahome

    (@tamahome)

    ありがとうございます。
    試してみたところ、日本語表示ができました。

    仰るとおり、今後のためにもあまりHammyは使わないで
    別の方法を模索します。
    ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「Hammyを使うとAlt,Titleが正しく表示されない」には新たに返信することはできません。