前回の続きで、今回は「カスタマイズ」について、つらつらと述べていきます。
3.カスタマイズ
今回画像サイトの構築にあたって一番難しかったのが、「検索」です。
各投稿に対して、二つの属性情報の設定が求められていました。
・種別 ⇒ ~類、~科みたいなものです ・地域 ⇒ 日本の地域
「種別」と「地域」。属性として、全く意味合いが異なりましたので、カテゴリでの管理はこの時点で、ダメ。また、各投稿に対して、属性の付加はざっくりとこんな感じでした。
・種別 ⇒ 各投稿に対して一つ ・地域 ⇒ 画像は色んな地域で撮られているので一つとは限らない。
ま、二つの属性情報を簡単に管理するには、シロウトの私にすれば、「カスタムフィールド」一択だね!となりました。
で、各投稿に対して「種別」と「地域」をAND条件で検索かければいいよね、と最初使用していたのが、
が、振る舞い的に良い回答は得られず。
サイト全体に「地域」感を出したいとのことで、求められたのが以下です。
1.トップページに地域情報のボタンを配置 2.ボタンを押したらページ遷移をせずに 2-1.背景を地域を連想させるものに変える 2-2.「種別」の第一段階に投稿数を「地域」にヒットした数だけ総数表示
「2-1.」は簡単でした。カスタムフィールドの値をCSSのクラスに登録すればいいだけで解決。
「2-2.」は地域情報を絞り込んで総数表示でしたので、プラグインのSQLをがっつりいじりました。PHPは不慣れでしたので、クエリのデバッグだけでも苦労しました。
「2.」のページ遷移せずに。が難しかった。。。単にクリックしてトップページをリロードするだけでいいかな、と軽く見ていたら、リロードしても欲しい情報であるカスタムフィールドの「地域」の情報が取得できない。
ボタンのURLとして、
http://www.hoge.co.jp/?カスタムフィールド名=helloworld
で「helloworld」が取得できない、ということです。
えらいこっちゃ!となって方々に聞いて、カスタムフィールド名ではなくて、別名で書いて、PHPの処理で内部的に「カスタムフィールド名」の値として扱うというやりかたで対処しました。
【修正前】http://www.hoge.co.jp/?カスタムフィールド名=helloworld ↓ 【修正後】http://www.hoge.co.jp/?疑似カスタムフィールド名=helloworld
ふー、やりたいことは簡単なのに、WEBはややこしい。。。
でも、WORDPRESSだけでも結構大きな技術領域だと勉強できましたし、得るものは大きかったです。サイト自体もよりよくしていきたいな、と思います。
次回から全く違う投稿をしていきます。