#WordPress で更新ボタンがグレーになって押せなくなる

#Wordpress で更新ボタンがグレーになって押せなくなる

まさしく今添付記事と同じ現象が出ている。この記事ではWAFが原因と書かれているけど、使っているサーバーはさくらインターネットのVPSだし、WAFが原因ではなさそう。他に何かあるのかな?

押せないと記事をコピペしてなんて、今はとても面倒なありさま。自動保存をやめてみるか。根本的な解決になっていないな。


WordPressで投稿記事編集中、更新ボタンが押せなくなった時の対処法
現象 管理しているWordPressのサイトで、バージョンを4.5.2にアップしてから投稿記事作成時に「更新」…

WordPressのいらないプラグインは無効ではなくて削除するのです

借りているサーバーに負荷が高かったの原因を調べてみたら、postfixのバウンズメールが原因だった。ほとんど使っていないドメインからのアドレスから送信していた。しかも、メールアドレスも知らないアドレスだった。スパムメールの踏み台にされていた。

postfixを停止させても、メッセージキューにどんどん溜まっていく。postfixは送信専用にしているから受信はしていない。リレーされている訳ではないようだ。何かやられて不正なプログラムを起動しているかと思っても、cronの設定も変なところがない。

送信しているアドレスのドメインが設定されているApacheのログを見てみると、外部からプラグインの下にあるプログラムを実行しようとアクセスしていた。IPアドレスを調べると中南米からだった。

実行されているプラグインは、WordPress Automatic Upgradeという今はメンテナンスもしていないプラグインの中からだった。こちらは無効にしてただけど仕込まれたプログラムが実行されていた。

WordPress Automatic Upgradeプラグインを削除しておく。すると今度はメッセージキューが溜まらなくなった。念のため、そのWordPressのサイトはメンテナンスにしてmod_writeでエラーページを出すようにしておく。Apacheのアクセスログを見ていると、いまだにしつこくアクセスをしている。今度はTinyMCSのプラグインを不正にアクセスしている。

今回は更新もしていない、ほぼ休止中のWordPressのサイトだったけど、WordPress本体とプラグインは定期的にはアップデートをかけていた。しかし、WordPressのプラグインは、必要なくなったら無効にではなくて削除すること。インストールするプラグインも何かあったらアップデートしてくれるような新鮮なプラグインで、必要最低限をインストールしないと危ない。ただでさえもWordPressのサイトは狙われやすいですから。

 

WordPressの固定ページの中に投稿最新一覧を表示する

お客さんのWordPressサイトでカテゴリごとに投稿の最新一覧を表示している固定ページがあります。いい加減手作業で更新するのも面倒になってきましたので、プログラムで対応します。

Googleさんに聞いてみるとショートコードを登録して呼び出すようなことをみなさん書いています。何と皆さん出しているPHPのコードはすべて同じです。所謂コピペ記事です。何か気持ち悪い状態になっています。さて、誰がオリジナルなんでしょうか?

しかしながら、WordPressって固定ページ内にPHPのプログラムを書けないのでしたね。今ごろ気が付きました。

そのコードをコピペしてもいいのですが、2つのカテゴリの記事一覧を表示したいので、2つコピペしなければいけませんし、第一コピペコピペで気持ち悪いです。パラメーターを渡して切り替えなんて改造すればいいのですが、それも面倒ということで、何か別の方法を探します。

What’s New Generator というよさげなプラグインが見つかりました。早速インストールして試してみます。しかし、カテゴリのフィルターが1つで固定されてしまうので、2つのカテゴリの最新一覧を並べることができません。惜しいですがこれでありません。

次に当たったのは、Shortcodes Ultimateです。基本的にショートコードでWordPressのいろいろな部分にアクセスできるのですが、今回は投稿のカテゴリ別にタイトルだけを最新3件の記事を一覧に表示します。具体的には、

[su_posts template="templates/teaser-loop.php" posts_per_page="3" tax_term="8"]

なんて書いてしまいます。出力されるタイトルがHTMLのコードのh2タグで吐き出してしまいますので、この辺りは本当なら修正しないといけないのでしょう。CSSで指定してデザインを合わせて作業完了です。

 

WordPressの編集でテーブル内にうまく入力できない

お客さんのサイトでトラブル。Wordpressで作っているサイトです。

テーブルで行を追加して、セルのなかに漢字を入力するとうまく入力できなくなりました。たとえば、

12月号

と入力すると、

12gあtうgおう

となってしまいます。

使っている漢字変換がMS-IME 2007でとても古かったので、最初これが原因かと思って疑っていました。しかし、MS-IME 2010にバージョンアップしても症状は変わりません。

そこで、TinyMCEのプラグインを無効にしたところ、今度は正しく入力できます。原因はTinyMCEのようです。しかし、テーブルの行の追加はTinyMCEのメニューからできるので、TinyMCEの代わりを探さなければいけません。

試してものは、CKEditor For WordPressといプラグインです。こちらは正常に入力できます。行の追加の方法が変わってきましたが、HTMLのタグを入力するよりもいい、ということで、CKEditor For WordPressをこれから使ってもらうことになりました。

しかしながら、どうしてTinyMCEでうまく文字が入力できなかったかわかりません。

TinyMCE Advanced (?)の不具合発生のメモ

お客さんのサイトがWordpressを使って更新しているのだけど、そこで発生したトラブルのメモ。おそらく何かの組み合わせで発生しているのかな?

トラブルはWordpressの編集画面でTinyMCE Advancedプラグインの入力項目で日本語を入力すると発生する。例えば「つき」と入力すると「tうkい」となってしまう。しかし、TinyMCE Advanced 以外のタイトルなどの通常のフォームは正常に入力できる。

自分のPCでは正常に入力できる。違いは MS-IMEかATOKで入力しているかの違い。お客さんの障害が発生しているPCでは、古いWindowsなのでMS-IMEも古いバージョン。したがって完全にはバージョンが合わせていない。自分のPCでMS-IMEを使ってもトラブルはない。うまく入力できないのはお客さんのPCだけ。

TinyMCE Advancedプラグイン以外のGUIの編集プラグインを探すくらいしか解決はないかな。せっかく覚えてもらった入力方法を、お客さんにまた教えるのは大変。

最近はWordpressのプラグインのちょっとしたトラブルに悩まされているな。

redirectionプラグインのせいで

お客さんから「トップページにアクセスすると、違うページが表示されるよ。」と言われた。そんなバカな、と思ったら、本当にそうだった。

そのサイトは、Wordpressで作成されたものを引き継いだもの。マルチサイトで作られている。

WordPressの設定もおかしなところもないし、リダイレクトの.htaccessのRewriteの設定も別に大丈夫。さて、わからない。

Googleさんに「wordpress リダイレクトプラグイン 勝手に」で聞いてみた。すると、Worpressのredirectionプラグインが悪さしているかも、と出てきた。

よく設定を見てみたら、redirectionプラグインを使っていた。ログを見ているとしっかりとリダイレクトしていた。データベースから直接redirectionプラグインの設定を削除したら、おかしな遷移をしなくなった。

何でそんな遷移をするようになったのだろう? WordPress恐るべし。

redirectionプラグインを使わずに、最初からRewriteで設定すればいいのに・・・。

#baserCMS のPDFリンクプラグイン作成

baserCMS公式サイト10年以上お付き合いしている会社の株主向けのサイトを運営しているのですが、そろそろリニューアルしましょうということになりました。今まではベタにPHPを使って書いていましたので、キチンとPHPのフレームワークを使って作成することにします。PHPのフレームワークといっても、CakePHPしか知らないので、CakePHPで作成してきます。

CakePHPの上で作っていくのもいいのですが、今回はCakePHPの上で動いているbaserCMSというコンテンツ管理システムの上で作成して行きます。会社のサイトですので、Wordpressのように時系列で記事を並べていくのではなく、固定ページ中心ですので、WordpressではなくbaserCMSが丁度いいのです。

しかし、会社サイトといっても、株主向けのサイトでもありますので、PDFファイルのIR情報やニュースリリースを掲載しなければいけません。しかも、IR情報というのは面倒なもので、証券取引所からのお達しで発表時間よりも、PDFファイルを前に見せることは厳禁です。IR情報を見て株の売買をするのですから、発表前の情報を手に入れられてしまうことは御法度です。

そこで、PDFファイルを時間によって記事リストを生成できるようなことを実現します。時間での表示管理はbaserCMSにデフォルトでインストールされているブログプラグインに、日付でアクセス制限をする機能がありますので、こちらを利用することにします。

今回はブログブラグインにPDFファイルを登録できるようにしました。ブログプラグインのpostテーブルにPDFファイル名の項目を追加して、プラグインを直接改造する訳にはいかないので、PDFリンクプラグインを別途開発して、postテーブルに1対1でPDF情報を格納するテーブルを用意しました。これでbaserCMSがアップデートした場合にも対応できます。

ブログプラグインの管理ページでPDFファイルを指定してファイルをアップできる機能を、PDFリンクプラグインとして追加しています。同じような機能を持ったプラグインを探しても見つからなかったので自分で作ることにしました。もしも、存在したならば、今回はbaserCMSのプラグインの開発のスキルを習得できたということでよしとしましょう。

作成したbaserCMSのPDFリンクプラグインをGitHubに置いておきます。

https://github.com/muneando/basercms-plugin-pdf

ご自由にお使いください。バグを見つけたり機能アップしたら、GitHubから連絡ください。ただし、今回のサイトを作成するにあたっての必要最上限の機能しか実現していませんので、機能アップをしていただければ、大変うれしいです。

ページ内で表示するPDFファイルへのリンクは、PDFリンクプラグインのヘルパーで実現しています。ブログの本文とPDFファイルをどちらを優先してリンク先で表示できるかを、PDFリンクプラグインの管理ページで指定できます。前述の通りPDFファイルへの直リンクはダメですので、ユーザーがアクセスできないところにPDFファイルを置いて、PDFファイルをダウンロードする前に、時間をチェックできるようにしています。

使い方の説明は、GitHub の README.md をご覧ください。

このプラグインの作成で参考したのは、materializing 氏の Keyword プラグインです。参考というよりも、baserCMSのプラグインのイベント辺りは丸写しです。おかげでCakePHPのイベントについて理解できました。materializing 氏には、baserCMSのプラグインについて相談に乗っていただき感謝です。

実際に動いているサイトは、まだテスト段階なので公開していません。PDFリンクプラグイン以外にも、IRカレンダーを表示するためのbaserCMSブラグインも作成してしましました。もし、お客さんにOKいただいたら、baserCMSの利用例としてご覧いただけるようにします。

#WordPress 4.0 “ベニー” インストール

このサイトで使っているWordPressが4.0になったということで、アップデートしました。Wordpress本体、アップデートに伴ってプラグイン、テーマもアップデートとなりました。

トラブルなしに無事にアップデートできました。トラブルがあったらデータのバックアップがあるといえども、元に戻すのが面倒なのでよかったです。今までWordpressのアップデートを何回もやってきましたが、まだアップデートが失敗したことはありません。それだけ、Wordpressを開発している皆さんの努力の賜物です。

記事の追加編集のユーザーインターフェイスは変わっていなそうなので、Wordpressを使っているお客さんからサポートは、今回しなくてよいでしょう。

フレッツ光ネクスト切り替え工事内訳

Bフレッツからフレッツ光ネクストへの切り替え工事内訳が請求書に上がっていました。しかし、工事の人がそのとき出した内訳書の項目と今回請求書の項目が一致していない。

最初、工事のときの内訳項目と請求書項目の呼び名が違っていたので、またNTTのミスかと思ってしまいました。

切り替え工事の内訳は以下の通り

工事のときの内訳 金額(税別) 請求書の内訳 金額(税別)
ひかり電話・機器工事費 2,500円 ひかり電話お客様宅内工事料 2,500円
交換機等工事費 1,000円 フレッツネットワーク工事料 1,000円
基本工事費 4,500円 フレッツ工事基本料 4,500円
回線終端装置工事費 4,100円 フレッツお客様宅内工事料 18,500円
屋内配線設備部分工事費 14,400円
合計 26,500円 合計 26,500円

請求書の「フレッツお客様宅内工事料」が「回線終端装置工事費」と「屋内配線設備部分工事費」との合算で18,500円になっていました。

同じ項目にすればわかりやすいのに。あえて難しくしてしまっているようで残念。まあ、工事会社とNTTは別だからってことなのかな。一緒にしておけば、クレームの問い合わせが少なくて済むのに。私は、電卓を叩いて計算して理解できたので、問い合わせをしませんけど。

追記

WordPressのJetpackプラグインにあるMarkdown機能でテーブルを書いてみたけど、右寄せは <td aligin="right"> というふうに出力するのね。左寄せになってしまうけど。

TinyMCE Advanced プラグインと Markdown

この WordPress ブログでも Markdown を使っています。使っているのは Jetpack の Markdown です。Jetpack はいろいろてんこ盛りですので、同じ機能のプラグインはどんどん削除しています。これは WordPress の正しい使い方かどうかわかりません。

Markdown でよく使うのは、ソースコードの挿入です。ソースコードを表示するのに、SyntaxHighlighter 系のプラグインをインストールしましたが、どういう訳かうまく表示できません。そこで行き当たったのが Markdown での入力です。バッククォートで囲めばいいという気軽さで重宝しています。Markdown を使えば簡単に書式を指定できるし、Evernote でも Markdown をサポートして欲しいくらいです。

最近になってMarkdownのコードがそのまま表示されるようになってしまいました。何か悪さをしているかと思えば、直近でインストールしたTinyMCE Advancedプラグインでした。こちらはGUIで簡単に書式を設定できるプラグインです。TinyMCE Advanced プラグインを無効にしてみると、正しく Markdown が表示されます。TinyMCE Advanced プラグインが内部でバッククォートを表示できるように変換してくれているのでしょう。