![見出し画像](https://assets.st-note.com/production/uploads/images/117205403/rectangle_large_type_2_bf95329cf683b558a2d022d639eda629.png?width=1200)
状況に応じてカテゴリメニューも動的に変えることに成功(WordPress+PHP)
(約 2,200文字の記事です。)
何だかんだで今日もWordPress+PHPの話。自分の城、自分の戦場(いくさば)を積極的にカスタム中。今日は前回と違って基礎実験は終わって、第1弾の「RetopoFlowの使い方記事」の移植テストを進めた。
今日も8時間かけて念願の機能を実装できた。また昨日まで「見た目は悪いがユーザー体験としては影響がないので妥協するゥ!」という汚点も偶然に解消できた。やったね!
カテゴリメニューの内容を動的に変える
例えばTOPページにアクセスした人はサイト内の全体メニューを見たいだろう。なので網羅的な「最初からあるポン付け」のカテゴリメニューが表示される。
![](https://assets.st-note.com/img/1695665784169-colD8pDQLy.jpg?width=1200)
今はまだRetopoFlowとスカルプトのヒント集の2冊のマガジンしか登録していないが、ここからどんどん増えていくことになる😊
だがここでRetopoFlowの使い方マガジンを読みたい人は当然そのカテゴリをクリックするわけだが、普通のブログサイトではいつまで経ってもこの共通メニューがずっと付いてくる。
RetopoFlowの記事が読みたい人にとってはZbrushもスカルプトもサブスタンス3Dペインターの情報も必要ないんだ!
昨日は表示状態に応じてカテゴリ名を動的に変更させることに成功した。
今回はカテゴリメニューというか、画面の右端にあるメニュー一覧だったり目次だったり、そういう「画面右側のリスト」を、これまた状況に応じて動的に変更させることにした。そして8時間後、それは実装された😍
通常のブログサイトはいつまで経っても最初のカテゴリ一覧が付いてくる。
![](https://assets.st-note.com/img/1695665757153-hofK98Nxa5.png?width=1200)
だが今回の実装ではこうなる。
![](https://assets.st-note.com/img/1695665702595-rVv46aeuAc.png?width=1200)
そう、RetopoFlowの使い方マガジン(カテゴリ)をクリックすると、あら不思議、RetopoFlow内のカテゴリが表示されるようになる。ここからが本の「目次」とほぼイコールになる。
なので以後はRetopoFlowの使い方を知りたい読者は「ZbrushやBlenderの他のアドオン解説やサブスタンス3Dペインターの情報」に触れることなく、RetopoFlowの使い方だけの情報に集中してアクセスできるのだ!
これもまた理想的なデジタルブックに一歩近づいた!😍
動的なコンテンツの生成。情報のフィルタリング。
情報を動的に制御できることのメリットは「今の状況に必要な情報だけを絞って読者に提供できる」点にある。何でもかんでも提示されると読者は混乱する。なので「絞って絞ってナンバーワン!」なのだ。要らない情報をどんどん削る。シンプルにする。今回のテーマはこれだ。
要らない情報は隠す。マスキングというか、フィルタリングというか。
今回のこの8時間の試行錯誤は、実は実装だけでは5時間程度で完成していた。だがそのやり方では「もしマガジンの章立てが変わると『章の数だけ修正が発生する』という厄介な実装」だった。なので3時間を追加して、色々考えたり、情報収集して「そのアイディアは本当に実現可能なのか、今?」の可能性を模索したりした。結果、今回も無事に実装できた。結実した。
WordPressは壊れて復旧させてナンボ
ちなみに試行錯誤中に突然「全てのカテゴリ設定が消失」した。空っぽ。さすがに焦ったが、そうなる数分前にSQLのデータベースをバックアップしたので助かった。……、が、ここでもまたphpMyAdminがご機嫌斜めでSQLインポートを受け付けず「エラー」。復旧できないバックアップデータなどゴミだ。幸い、ちょっとしたコツによって復旧できたので安心できたが、やっぱりWordPressは怖い。
異常発生時にはいつも肝が冷える。やはり素人にはおすすめできない。
昨日の努力が、今日の成果になる
何の成果も得られない日々は、とても辛い。
![](https://assets.st-note.com/img/1695666109863-HnIsY3ULsC.jpg?width=1200)
ただし今の実力と知識で8時間かかって実現できたが、もし昨日や一昨日の実力と知識では、多分8時間でも「なんの成果も!!得られませんでした!!」となっていたことだろう。今回の肝となる技術的課題で、昨日まで悪戦苦闘しながらちぎり取った知識を使った結果、サクッとあっさりと上手く行ってしまった。
笑ったよ、ハッハッハッ。「やっぱり」出来たじゃないか、と。
is_category()の知識とarray()を使って、複数のIDを指定できたのが大きかった。カテゴリIDはIDというだけあって「一意」だから、他の子カテゴリと名前が被っても動作に支障はない。(人間には分かりにくいが。複数マガジンに「基礎編」という子カテゴリがいくつあるか分かったもんじゃない。だがWordPressの内部的にはカテゴリごとに固有のIDが割り振られている。)
今回はそのカテゴリ指定をIDでPHPで指定できた。2,4,17,21……などというように数字とカンマの列記で済んだ。これによってRetopoFlowの使い方マガジン内の細かなカテゴリをたった1行でフィルタリングの条件にできたのだ。やったね!
いつの時代も、知恵は裏切らない。
知恵の力をシビアに受け止めてくれるのがプログラミング言語だ。揺らがない分だけ、動くときには安定して動く。論理的思考万歳なのである😍
今日「も」成果を出せた。また一歩前進。
![](https://assets.st-note.com/img/1695666943402-Ru36KVtFq4.jpg?width=1200)
今回の創作活動は約8時間30分(累積 約3,393時間)
(942回目のnote更新)
いいなと思ったら応援しよう!
![大和 司](https://assets.st-note.com/production/uploads/images/6208717/profile_de560f9420d485e71741b8d34534c14f.jpg?width=600&crop=1:1,smart)