WordPress 4.1.2: 不具合対応まとめ

技術的にどのようい互換性を維持するのか? とかそういう話は置いておいて根本的に今の作りを見直さない限り先が無いと思ったのでそのまとめ。

先ず、そもそもの原因は何だったのか? ですが、結局はこの文章に尽きます。

当時 Ryan がこの問題を理解して適切な修正が本体で行われるまで丸1年かかりました。そしてその時にデータベースを UTF-8 に正常に変換できずにそのまま運用してきた方達、あるいは、同様の変則的な設定でたまたま動かせていた方達が今回のデータベース周りの改変に引っかかってしまった、ということですね。

要は本来UTF-8に全て変換されていなければならなかったMySQLのDBが部分的にShift JISのまま使い続けられてしまった事が原因という事ですね。一応自分でも WordPress 4.2.1-ja を新規でセットアップしてみて確認したのですが、生成されるDBの照合順序が全く別物。このサイトはWordpress 2.3の頃から延々と使い続けていたのですが、DBの照合順序は ujis_japanese_ci 。部分的に utf8_general_ci にテーブルの照合順序が書き換えられているもののエントリが格納される wp_posts は ujis_japanese_ci のままでした。

一方で新規でセットアップしたDBは utf8_general_ci で設定されており個別のテーブルは全て utf8mb4_general_ci で設定されています。なるほどこれなら wp_posts に書き込む時の文字コードが変換されてしまう事にも納得が行きます。従って根本的な解決策はただ一つ。DBを再作成して新環境を構築する事です。まあDBを2つ作って移行ツールを作るようなところで頑張っても良いのですが、バグ出し大変そうだし新規DBにExport/Import でデータ移行ですよ。その辺りの手順を簡単にまとめておきます。
続きを読む WordPress 4.1.2: 不具合対応まとめ

WordPress 4.2: 投稿データの編集ができない不具合

昨日付けで WordPress 4.2 が公開されました(WordPress › 日本語 « WordPress 4.2 “Powell”)。WordPress 4.1.2での不具合の件もあったので早速適用しましたが、前より酷くなっています。

文字化けだけでは無く新規投稿の際の画面すらまともに構成されない状態で全く使い物になりません。その状態から一応使える状態には戻せたので覚書。

前回の対応同様不具合の出ているモジュールを旧バージョンに差し換えるという荒業を使いました。対象ファイルは2つ。

  • wp-includes/wp-db.php
  • wp-includes/post.php

入れ替えたら綺麗に動きました。ただ一緒にアップデートされたテーマの挙動が変わっています。featuredタグをつけて表示する「おすすめコンテンツ」がアイキャッチ画像だけでは無くてポスト全体を表示するようになってしまいました。要注意です。
続きを読む WordPress 4.2: 投稿データの編集ができない不具合

WordPress 4.1.2: アップグレードで文字化け発生

昨日付けで WordPress 4.1.2 が公開されました(WordPress › 日本語 « WordPress 4.1.2 セキュリティリリース)。セキュリティリリースですので即充てるのが良いのですが、今回アップグレード後に動作に不具合が出たので覚書。取りあえず確認した事象は次の通り。

  • 投稿文書を保存するとダブルバイト文字が全て文字化けする。
  • 既に保存済の文書を変更して保存するとダブルバイト文字が全て文字化け。
  • 投稿文書に変更をかけるようなプラグインが全て動かなくなった。

現象から察するにDBに書き込む時点で真面な更新ができていないかDBが壊れてしまっているか。念のためにMySQLの状態を確認すると上記現象が出たエントリ以外は全てデータが正常な状態。いよいよ更新系モジュールが面白い状態になっているようなので検索してみるとエントリを発見。

WordPress › フォーラム » 新規投稿等すべての更新が出来ない。

wp-db.php の不具合のようですね。本来は正式なパッチを充てるとかが良いのですが、前バージョン(WordPress › 日本語 « リリース)の wp-db.php を差し換えて確認したところ取りあえず投稿は正常に行われるようになりました。しかし一部のプラグインのテキスト表記は文字化けしているところが残っていたりします。

早期の修正プログラムを期待しております。

Jetpack by WordPress.com 3.4.1が正常に動いた

Jetpack by WordPress.com 3.2が正常に動作しなかった件 | cefa::blog を書いてから暫く経って今回の3.4.1でとうとう正常な稼働状態に戻りました。

しばらくの間Bug Fixが続いていたのでそのうちの何かがヒットしたのかも知れませんね。何はともあれこれで更新アラートが残る事が無くなるのでダッシュボードを見ていてもイライラしなくなります。

最近はオフィシャル面で時間が取れていなかったので、久々にWPを触ったらこんな良い事が。何か良い前触れだと信じてしまっても良いですか?

Jetpack by WordPress.com 3.2が正常に動作しなかった件

10月末にリリースされたJetpack by WordPress.comのバージョン3.2ですが、導入直後から下記のエラーに悩まされていました。

Warning: array_intersect_key() [function.array-intersect-key]: argument #1 is not an array in /hogehoge/wp-content/plugins/jetpack/class.jetpack.php on line 1323

他のサイトでも同様の現象が出ている様子はGoogle先生の回答から見て取れたのですが、特に多くの方が苦しんでいるような素振りも見えず提供元からリリース更新がされるような感じも無かったので結局ひとつ前のバージョン3.1.1へ戻しました。(しかもイタリア語とかポーランド語とか…そもそも読めないという…)

このサイトはさくらインターネットのサービス上に構築しているので全く同じ手順では無いかも知れませんが、似た様な事があった方の為にバージョン戻しの手順を覚書。

  1. https://downloads.wordpress.org/plugin/jetpack.3.1.1.zip から旧バージョンをダウンロード。最新バージョンのファイル名部分のみ前バージョンに書き換えたら無事ダウンロードが始まったのでラッキーでした。/li>
  2. プラグイン → 新規追加 → プラグインのアップロード でダウンロードしたファイルを選択。
  3. アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。 と表示された場合は、アップロードファイルサイズ制限に引っかかっているのでphp.iniに upload_max_filesize = 10M を追加。もう一度アップロードからやり直してインストール完了まで漕ぎ着ける。
  4. インストールが完了したらプラグインを有効化 して WordPress.com にログイン。

元の設定情報は大概残っているみたいなので、パブリサイズ共有のあたりだけチェックすれば大体元通りになるみたい。これで無事復旧しました。当分最新バージョンにはできないのか、次のバージョンでまた使えるようになるのか。ダッシュボードに表示される “更新?” を無視するストレスに耐えながらしばらく経過を見守りたいと思います。

wp-flickr-pressを使ってFlickrと連携

元々は携帯から写真を添付してFlickrにメール送付。其処から自動投稿でWPにエントリするような仕掛けをしていたのですが、FlickrからWPへの自動投稿が上手く行かなくなっているみたい。原因不明ですが、とりあえずFlickrへの投稿分をメディアとして利用できるようにします。

Pluginは色々あるようですが更新がされていて尚且つ日本の方が開発しているという事でwp-flickr-pressを選択しました。次のサイトを参考にすれば誰でも利用開始できると思いますが、一応やった事を覚書。

  • Tatsuya Blog » wp-flickr-press
  • できた!Flickrの画像をWordPressに挿入☆☆WP-Flickr-press | メタボおいちゃんの奮闘記とロレックス

プラグインをダウンロードしてインストールする所までは特に何もなく。最初の壁はFlickrのAPI取得です。全てFlickr側で作業します。

  1. “Explore”, “App Garden”, “Get an API Key (Your Apps)”の順番で選択。
  2. “APPLY FOR A NON-COMMERCIAL KEY” を選択して登録画面に移る。
  3. “What’s the name of your app?”, “What are you building?” の両方に任意の文章を入力。
  4. “I acknowledge that Flickr members own all rights to their content, and that it’s my responsibility to make sure that my project does not contravene those rights.”, “I agree to comply with the Flickr API Terms of Use.” の両方をチェックして進めるとキーが取得できる。

次にOAuthトークを更新する為にCallback URLに対して認証させます。

  1. Flickr側で”Apps by you”, 作成したApp名, “Edit (Admin)”の順番で選択。
  2. WP側で出力されている Callback URL をFlickr側画面のCallback URLの欄に貼り付ける。
  3. “Save changes” を押してWP側でOAuthトークンを更新する。

これでOK。後は投稿編集画面に “flickrメディアを追加” のボタンが表示されている事を確認すれば完了。