ぃまだWordPressで消耗してるよっ!

だらだらと

2015年後半頃から、WordPressをメインに使ってるWeb屋さんが「WordPress以外の選択肢」、例えば、静的サイトジェネレータ1 、でなければ、元からCMSとして設計されたプロダクトに触手を伸ばしてるなぁと感じると同時に2 、一方のWordPressに関しては、実は2014年頃からかなぁと思うけど、VCCWWP-CLIWordmoveといった自動化?のツールの充実や、更には最近では WP REST API が出てきたので、何となくだが自分みたいなロートルなプログラマにも優しくなった気がしている…変な言い方だけど。

で、恥ずかしながら。
私事になるが、2015年10月、ここをハッキングされた \(^o^)/

全PHPファイル、これはこのブログの乗っているサブドメイン以外のサブドメイン(= ディレクトリ)を含めた全PHPファイルの先頭に変なプログラム文字列を仕込まれた。
これが仕事だと、なりふり構わず早急にリカバリしないといけないし、侵入経路3 を突き止める必要があるけど、そうじゃないので一旦落ち着いて色々と確認しながらこのブログを復活させた。4

復旧に乗じて、他のプロダクトへの移行も考えたが5 、Markdownで書いている6 のは相性が良いとしても、((ほげほげ)) で脚注(footnote)を多用していたり、要所要所でショートコードを多用していたりと、まだ決定打が無い7 ので引き続きWordPressを使う予定。

…だったのだが、どうやらJetpackのMarkdownはPHP Markdown Extraの脚注をパースするらしく、いずれ対応したいとは考えている。8

2015/12/28

Menu of this post

  1. 1. だらだらと
  2. 2. WP-CLI・Wordmove
  3. 3. 最もよく見られた投稿をJetpack APIから取得
  4. 4. 関連する投稿を実装してみる
  5. 5. その他の細々とした改修

Footnotes

  1. 1. Hugoに注目している模様で、速度が早いのは良いのだけど、テンプレートの書き方があまりにも自分の知っているそれとは違うので使用を躊躇している。個人的には、PHPやNode.jsベースで良いかなぁと思うけど、静的であれ、データベースを使わないフラットファイル型であれ、イケてるテンプレが豊富にある事を第一条件に挙げそうな気がする。他には、Twig、NodeではあるがJadeなどの「継承」できるテンプレートエンジンの使用で、WordPressみたいな各パーツ毎にぶった切る方法じゃない方が今風で良いのかなぁと。例えばTwigが使えるTimberというプラグインがあるみたいだけど。あるいはStaticPressというセンか。ただ、Github Pagesなどで完全に静的サイトに移行した場合、例えばコンタクトフォーム(不要だったらそもそも悩む必要は無いけど)やサイト内検索(そこそこ記事が存在する場合?)をどう実装するのか…

  2. 2. オールインワンの重量級志向なのか、真逆の軽量級志向なのか、向かう方向は不明。私は後者で、特化した各プロダクトを寄せ集めて、が信条。

  3. 3. 不明、というよりも調べていない。少なくとも、データベースを書き換えられたとか、WordPressやサーバにログインされて、では無い模様。だとしたら何を経由して、になるが、分からないし調べていない。この時期に何か大規模なハッキングが発生した訳でも無く、調べる限りでは数年前の手口にヤラれたんじゃ…と思われたので、二週間は落ち込んで手が付かなかった。および、同時期にクラウドソーシングに一件だけご同輩と思われる依頼人が作業を依頼していたかなぁと。ただ…ある時期に、急にレスポンスが悪くなった印象があるが、これは機器など別のレイヤの問題かと思ってスルーしてしまったが、まさかこの時?

  4. 4. 復旧作業は、本番環境からダンプしたSQLを正として(SSHが使えなかったら物凄く面倒だったと思う)、取り敢えずローカルにWordPress環境を作成、そのSQLダンプを読み込ませ、別途ローカルに准本番環境を作成、各種設定は以前作成していたローカル環境を参照に准本番環境にコピペしつつ、取り敢えずWordPress環境の投稿を准本番環境に貼り付けて准本番環境を完成させるという、何とも無駄で何とも地味な作業という、もう今後はこんな事やりたくない。

  5. 5. 公開Web上でPHPを使う事に若干トラウマを感じている…

  6. 6. 未確認だけど、JetpackのMarkdownで書いた投稿は、wp_posts テーブルの post_content にはMarkdownがパースされた状態の投稿が格納されて、Markdownの投稿は post_content_filtered に格納されているのではないかと。この項目の本来の使い方は調べていないが、状況として、こうなってる…んじゃないか?という事で。ただ、この影響なのか、WordPressのエクスポートでは、Markdownデータがエクスポートされていない気がするが、今後はこのフィールドも wp post list で抽出できるから、まぁ良いかと。

  7. 7. そのプロダクトに合わせたプラグインを書けば済むのだけど。

  8. 8. ではあるが、正直、一意の脚注識別子?を振るのが面倒な…一応、変換スクリプトは書くには書いたが、移行をどうするか、どう運用するか、を決めていない。また、現在の脚注で出力されるタグが異なるので、そちらの対応も必要になる。更に多少はギミックを加えるなど。