ブログ向けのテーマであるSWELLをスクレイピングしたデータから自動更新するタイプのサイトで使いました。
この記事ではその時に必要だったSWELLのカスタマイズについてまとめます。
そのサイトは、APIやスクレイピングでデータを取得して、一定のフォーマットで記事を毎日投稿していくようなサイトです。
以前同じような内容のサイトを、自由度が高いSnow Monkeyをカスタマイズして作ったことがありました。
同じようなサイトをSWELLで作ってみたらどのぐらいのカスタマイズが必要なのか知りたくて、SWELLを使って実験的にサイトを作りました。
結論から言いいます。
カスタムタクソノミーを追加するサイトでは、SWELLの標準機能では殆どの対応できず、子テーマによるカスタマイズが必要になりました。
ただし、親テーマを変更することなく対応できる範囲でカスタマイズできるため、SWELLのテーマのカスタマイズ性は高いと言えます。
SWELLで制作したサイトの特徴
SWELLで制作したサイトの特徴
- 投稿数は1万越え
- カスタム投稿タイプを使用
- カスタムタクソノミーのタームを大量に登録
SWELLはコードによるカスタマイズの情報が少ない
SWELLはカスタマイズの情報が少ない
- フックのカスタマイズで機能変更できる部分は殆どない。
- テンプレートレベルでカスタマイズをしているサイトの例は実は少ない。

SWELLの課題
課題①:人気記事ランキングが機能不足
SWELLの人気記事機能自体がおまけ程度の機能しかない。
投稿ID毎に表示回数を累積で保存しているだけなので、期間を絞ったりすることは出来ない。
また、人気記事ウィジェット自体がカテゴリなどの絞り込みに対応していない。
人気記事ウィジェットとWordpress popular postプラグインを組み合わせ、SWELLの見た目はそのままに、データだけプラグインから引っ張ってくるカスタマイズで対応する。

課題②:新着記事ウィジェットが機能不足
新着機能ウィジェットもカテゴリの絞り込みに対応していない。
表示している記事が属するカテゴリの新着などもを表示したい時にカスタマイズが必要になる。
タクソノミーにはもちろん対応していないので、タクソノミー対応を含めたカスタマイズが必要になる。

課題③:関連記事が機能不足
カテゴリーやタグでの関連記事の機能はあるが、カスタムタクソノミーを対象した機能は無い。
カスタムタクソノミーの場合は想定できる使い方が無いので、ユーザーがカスタマイズする前提なのは仕方ない。
クエリ引数をフックで書き換えられるようになっているので、ユーザー側で自由に対処できる。

課題④:カスタムタクソノミーへの対応が不十分
カスタムタクソノミー1つしかmetaデータとして出力されない。
複数のタクソノミーを出力しようとすると使用する条件に合わせたカスタマイズが必要だった。
カスタムタクソノミーを使う時点で、利用者ごとに状況がことなるので、これは仕方ない。

まとめ
Snow Monkeyでカスタマイズしたサイトと同じサイトをSWELLで作れるか?という実験をした。
Snow MonkeyやArkheはテンプレートパーツをフックで書き換えることができるがSWELLにはその機能が無いので不安だったが、子テーマにファイルを作ることで、親テーマを変更せずに対応できることが分かった。
コメント