サポート » 使い方全般 » 記事の日本語が消える

  • 解決済 kazunekoyama

    (@kazunekoyama)


    フォーラム内外で同様の質問を見てみましたが、解決せず、状況が違うかもしれないので投稿させていただきました。

    WordPress導入後、おもに以下の流れを踏みました。

    ——————————-
    プラグインでBloggerから記事をインポート

    パーマリンク設定を「日付と投稿名」に変更

    .htaccessを更新

    http://www.example.com/wordpress/を
    http://www.example.com/blog/にするため
    一般設定>Wordpressのアドレス・サイトのアドレスを変更後、
    wordpressディレクトリをblogにリネーム。

    記事個別のURLで404が返ってくるようになり、
    デフォルトのパーマリンク設定以外だと繋がらない状況。

    .htaccessの
    RewriteBase /wordpress/
    RewriteRule . /wordpress/index.php [L]
    のwordpressをblogに変えて解決。

    記事の編集画面の、タイトル欄の下のパーマリンクを変更したら
    その記事のページと、トップページのレイアウトが崩れた

    (ここで、どうやったら解決したか思い出せません)

    記事のスラッグを追加して更新ボタンを押すと、
    記事内の画像だけ残りタイトルと本文が消滅。

    新しく投稿を作っても、日本語のような全角文字だけ消えて
    半角文字だけ残るようになる。

    なお、データベースのWordpressのテーブルはすべて
    utf8_general_ci になっています。
    ——————————-

    という状況です。
    何かおわかりの方、ご教授くださると嬉しいです。

    WordPress 3.2.1

    PHP: 5.2.6-1+lenny3 with Suhosin-Patch
    MySQL: 5.0.51a-24+lenny1

    Firefox 8.0.1
    Mac OS X 10.6.8

14件の返信を表示中 - 1 - 14件目 (全14件中)
  • 過去のトピックにもありますが、WordPressのディレクトリを変更する場合は、決まった順番でデータベース内も書き換える必要があります。

    ひとまず元に戻すと言うことで、ディレクトリ名をblogからwordpressに戻して、
    wp-config.php に
    define('WP_SITEURL', 'http://www.example.com/wordpress/');
    として復旧なさることをおすすめします。

    トピック投稿者 kazunekoyama

    (@kazunekoyama)

    kurosquareさま

    ありがとうございます。
    wordpressで復旧できましたが、
    今、新しい記事を書いても同じ状況になります。

    次に、何をしたらよろしいでしょうか?

    まず問題の切り分けができましたので、投稿の日本語が消えるというのを参考に、PHPのmbstring関係の設定がUTF-8になっているか確認してください。

    トピック投稿者 kazunekoyama

    (@kazunekoyama)

    mbstring.http_output
    mbstring.internal_encoding
    両方ともSJISになっていました。

    サーバ管理は知人に任せているのですが、
    この値の編集はこちらからできないでしょうか?

    WordPressを設置した場所の.htaccessファイルに以下の2行を追記すると良さそうです。

    php_value default_charset UTF-8
    php_value mbstring.internal_encoding UTF-8

    トピック投稿者 kazunekoyama

    (@kazunekoyama)

    追記してみましたが、500エラーが返ってきます。

    可能性としては、別のトピックで言及されているのですが、テキストファイルが「BOM有り」で保存されていませんか?

    BOM無しで保存できるテキストエディタならなんでもかまいませんので、保存し直してみてください。(テキストエディタの話を始めてしまうと深みにはまってしまうので割愛します)

    トピック投稿者 kazunekoyama

    (@kazunekoyama)

    問題なく使えるとされているMac OS X付属の”テキストエディタ”で保存していました。
    別のBOM無し保存が可能なエディタでもだめでした。

    .htaccessで設定できないということは、今更ですいませんが、CGI版のPHPかもしれないですね。phpinfo() の Server APIで確認できるはずです。CGIであればサーバ管理者の方に、個別でphp.iniが設定できるかどうか相談するしかないです。
    もしディレクトリごとにphp.iniを設置できるのであれば、
    以下をphp.iniとして保存すればよいと思います。

    default_charset = UTF-8
    mbstring.internal_encoding = UTF-8

    トピック投稿者 kazunekoyama

    (@kazunekoyama)

    Server APIはApache 2.0 Handlerでした。

    上記をphp.iniとして/wordpress/に置きましたが、
    500エラーにはならずにログインできるものの
    あいかわらず作成した記事の日本語は消えてしまいます。

    長引いてしまって、すみません。

    Apache 2.0 Handlerということはモジュール版PHPなので、.htaccessで使えるはずなのですが。困りましたね、どこを見落としているのか見当がつかない…。

    トピック投稿者 kazunekoyama

    (@kazunekoyama)

    ちなみに.htaccessの内容は

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /wordpress/
    RewriteRule ^index¥.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpress/index.php [L]
    </IfModule>
    php_value default_charset UTF-8
    php_value mbstring.internal_encoding UTF-8
    
    # END WordPress

    で問題ないでしょうか?

    内容については問題ないようです。
    あとはMacOS X上のApacheということで、初期設定のままで.htaccessが使えない状態になっているのかもしれないですね。Apacheのhttpd.confを編集すれば有効になると思いますが、ここまで来るとWordPressだけの問題ではなくなってしまいますので、サーバー管理者に問い合わせていただくしかないと思います。でもHTTPステータス500だとすると、.htaccessファイル自体は読み込まれているような…。そもそもディレクトリを/wordpress/から/blog/に変更したときは.htaccessは反映されたんですよね。

    それ以外の可能性は…もしかしたら改行コードをCRで保存していませんか。
    改行コードはLFで保存してみてください、と、なんだかありきたりなことしか思い浮かびません。ごめんなさい。

    トピック投稿者 kazunekoyama

    (@kazunekoyama)

    今、CotEditorというエディタで.htaccessを保存して置きかえてみたところ、
    日本語が消えなくなりました!

    このエディタでは一度試してみたのですが…謎です。

    kurosquareさま、長らくありがとうございました。
    本当に助かりました。

14件の返信を表示中 - 1 - 14件目 (全14件中)
  • トピック「記事の日本語が消える」には新たに返信することはできません。