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メディアを追加” のボタンが表示されている事を確認すれば完了。

WordPress 4.0にアップグレードした

今朝起きてダッシュボードを確認したら正式リリースされていたので早速アップグレードしました。手順も何もアップグレードボタンを押しただけです。(バックアップはきちんと取りましたよ。)

今のところ何が変わったという実感は無いですが、メディアの差込機能が強化されている様です。便利な機能は積極的に使いたいですね。あと利用できなくなったプラグインは今の所ありません。表示も正常です。

via
WordPress › 日本語 « WordPress 4.0 “ベニー”
WordPress のバックアップ – WordPress Codex 日本語版

Broken Link Checkerを導入した

プラグインの有効化をかけた後リンクの自動チェックが走り 442件/4481件 のエラーを検出してくれました。寝る前に仕掛けて起きたら終わってたくらいの時間がかかったように思います。さらに時間が経ったら 841件 になっていました。拙い! しかしながら地道に修正する必要があり大量の件数があるのは今までのツケって事で。コツコツやっていきます。

…と言うわけで上記のメモを取ってから一週間で全580件のエラーリンクを修正しました。後は日頃のメンテナンスを繰り返して行くだけです。
最近はWeb上でのアーカイブサービスも多いのでロストしているURLにもそれなりにリンクを貼りなおす事ができますよ。もしもリンクを修正するのであればお早めに。

via
Broken Link Checkerプラグイン(ブログからのリンク切れチェック) – WordPressプラグインの一覧

アイキャッチ導入と個別URLでの非表示化

テーマをTwenty Fourteenにしたのでウェブマガジンに最適|WordPress テーマ「Twenty Fourteen」を参考に設定してみようと思いました。特にフィーチャードエリアを確りと使いたい !

さて、フィーチャードエリアに画像を表示する場合、対象のエントリにアイキャッチ画像が設定されている必要があります。ところが標準機能ではメディアとしてアップロードした画像しか対象にできない為に私みたいにFlickrをベースに画像を掲載しているとこの機能が使えません。

そこで Auto Post Thumbnail というプラグインを利用します。細かいことは記事内のflickrリンク等からアイキャッチを自動作成するプラグインを導入 | 黒生鉄心の奇妙な日常で記事にしてくれているので割愛。多少時間はかかりましたが、Generate Post Thumbnailsボタンを押してからエラー無く取り込み完了しました。

次にフィーチャードエリアのカスタマイズをします。対応タグfeaturedをフィーチャーしたい記事に埋め込んだら標準では完了です。何となくタイトルが良くなったのですが、問題発生。個別のページでいちいちアイキャッチが先頭に表示されて少々煩い。そこでフィーチャードエリア以外はアイキャッチを非表示にします。色々考えたのですが、CSSで処理してしまうのが良さそうです。

/* Twenty Fourteen for cefa::blog */
@media screen and (min-width: 401px) {
  #primary .has-post-thumbnail header.entry-header {
    margin-top: 24px;
  }
  #primary .has-post-thumbnail a.post-thumbnail {
    display: none;
  }
  #primary .has-post-thumbnail {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
  }
}

これをカスタマイズCSSとかに入れておけば良い具合です。ひとまず完了。

Googleサイト運営者向けプラグインを導入

WordPress 用 Google サイト運営者向けプラグイン(ベータ版)について – AdSense ヘルプを元に次の2つを実現します。

  • Google AdSenseの掲載を簡単にする
  • Google ウェブマスターツールでサイトの視認性を検証する

導入するのはGoogle Publisher Plugin (beta)。とりあえずインストールしてサイトマップ有効化したところまでは完了。しかしAdSenseを呼び込もうとすると次のエラーが出ます。

エラーが発生しました。もう一度お試しください。

WordPress のキャッシュ プラグインが原因となっている可能性があります。このプラグインをご利用の場合は、プラグインの手順に従ってキャッシュをクリアしてから、再度お試しください。

PhotonやAmazonJSなどキャッシュを利用しているプラグインを一時停止して試みましたが上手く動かないです。このあたりは追々。

続きを読む Googleサイト運営者向けプラグインを導入