久々に触るWordPress
こんにちは。カトーです。
1年ぶりとなる公式サイトをリニューアルしましたよ。いつもはスタッフや外部技術者へカスタマイズを頼むのですが、別件でカスタマイズの仕事もあったので、ゴリゴリ触ってみましたよ。ちなみにこの記事はその時の備忘録ですよ。日常的にカスタマイズしている人はあまり役に立たない記事です。
……で、ですね、私自信がWordPressのカスタマイズというのは久しぶりです。気がつくとWordPressのバージョンも2017年3月8日現在、4.7.3です。2008年のWordPressの”WordCAMP TOKYO ”参加してから、もう既に10年近く経過していたのですね。ちなみに私はその当時はosCommerceの後継のZenCartをコミットしたりしてました。
それはともかく、私が最後にWordPressカスタマイズしたのは昨年の8月ぐらいですが、ここ数年は使い方が本当に多岐に渡る進化してるなぁ……と思った次第ですよ。
特にアクセスの多いサイトでの組み込み方法、また更新の部分だけをWordPressに任せて、関数だけ利用すると……他のCMSでここまで組み込みで利用されるオープンソースのCMSはないのでは?と思う次第です。
……そ、それはともかく久しぶりリニューアルしたので、備忘録として久々にWordPressを触るロートルWEBエンジニアのために書いておきますよ。
基本はカスタムして、読み込んで使うのがいいよね
私達の会社は基本はサーバー保守の会社なのですが、1年程前、とある研修案件にてクローズドの環境で6コアでメモリ12GBぐらいの単発のサーバーをインストール後、ほぼデフォルトの状態でWordPressを20個程インストールして動作させる事がありました。DBをほぼ同時にアクセスさせる環境だと速攻でハンギングします。レンタルサーバーでそのスペックは本当にありえない最低限なのですが、そのの時感じたのは、機能が多い分、サーバーに負荷が掛かるという事です。
……で、大手のサイトでもWordPressで公式サイトやメディア運用してるのを見かけるのですが、基本は静的な構築で更新する部分に内部で更新しやすいようにWordPressを使い、load.phpを読み込ませて関数だけ使うとか更新する部分だけ使うというような構築が多いようです。
ちなみにバランサを組んで複数サーバーでWordPressを動かすことはできるのですが、以前、月間1500万PVでコスパが悪いなぁ……と思う事がありました。なので今回カスタマイズするときにそれは本当に思いましたよ。
増え続ける関数が……
上から目線で申し訳ないのですが、WordPressは基本、PHP+MySQL、それにjQuaryなどいれつつ、皆が便利だと思うのは当然エディタだと思うのですよ。そうですこのWYSISYG。それと簡単な関数。……で、このthe_post()とかなんとかいろいろタグがあるのですが、WordPress Codex 日本語版を久しぶり見ると増えてる増えてる……。特に思うのは4.7.1で脆弱性があったように、便利が故にチャレンジしてる感がありますよね。
どのテーマでカスタマイズするか
昨年、この公式サイトをカスタマイズしたときは、1からテーマを作り、途中から”面倒だぁ”とIT業務なのに、医者の不養生のようにSTINGERを手を加えて使ってました。ちなみに今回は……20~30個テーマをいれたり、またカスタマイズありきのBoneもつかってみましたが、どうもしっくりこないので、今回はSTINGERの後継STINGER8をカスタマイズして使ってますよ。
メニュー部分
STINGER8はインストールしただけだとメニューのドロップダウンが固定幅なので、今回はjQuaryのプラグインのもの変更。オーバーレイ部分はしかたないので、メニューの部分をDIVで指定して、
1 2 3 4 5 6 7 8 9 10 11 |
$(function() { $("#shadow").css({ opacity: '0.6', display: 'none', position: 'fixed', top: '0', width: '100%', height: '100%', background: '#000', zIndex: '1' }); |
とかオーバーレイにしてます。元はOverlay Effect Menu with jQueryです。
更新部分
今回WordPressの管理画面から更新するのは上部2つのスライダーです。本当はカスタム投稿かな?と思ったのですが、それぞれ作るのは面倒なので、固定ページかカスタムフィールドを読み込ませて組んでいます。なので、簡単に
1 2 3 4 |
$top_slider = get_field('カスタムフィールド',固定ID); foreach ($top_slider as $value){ カスタムフィールドひっぱりながら廻(´・ω・) ス } |
上記な感じです。ちなみにスライダーはFlexSlider2です。実装してからもっとアクション多いスライダーのほうがよかったかな?と少し反省してます。
子テーマが故にどのテンプレートか少し悩んだ(´・ω・) ス
……で、ひさしぶりに触ると決められたルールが増えています。もしこの記事を読んでる貴方が久々に触るならまずはテンプレート階層を一度見たほうがいいです。特に変更してるのにあれあれ?と。archive.phpだと思ったらtag.phpだった?とか。良くテーマ見てないと無駄に時間がかかりますしね。ちなみに、
1 2 |
global $template; echo $template; |
とかで確認もいいですよね。
まだ続くカスタマイズ
ちなみにこの公式サイトカスタマイズを始めたのは3月4日(土)からで、この記事を書いてる現在は3月9日(木)0:30です。なかなか他の仕事もあるので、すこしづつですが、更新の履歴も記録を書いて見ますよ。