たった1文字で正常に動かない

昨日は作業会を実施。作業会は衆人環視の状態だからサボれ無いんだよね。だからすごく作業がはかどる。また相談も随時できるので、一瞬でも迷ったことをすぐさま質問して、修正することができるのが良い。作業時間としても、作業効率としても、作業精度としても、優れているのが作業会なのだ

さて、作業会をスタートして早々に「実はトラブルを抱えているので助けてほしい」と相談される。なんでも、WELCARTというWordpress上のプラグインとして利用している決済システムにおいて、とあるサイトだけエラーになるという。発生条件としては「カートに商品を追加」→「買い物を続ける」をクリック。すると404エラー

問題のないサイトと、問題のあるサイトがあり、どこを直せばいいのか?ということで3日間も悩んでいたそうだ。さっそく、問題あるサイト、ないサイトを見比べてみる。するとカートページに移動したときにURLの最後にスラッシュがあったりなかったりする。これが問題だね

スラッシュがない場合、「買い物を続ける」をクリックすると user-cart から item というページに移動する。ところが、スラッシュがあると、 user-cart の下位フォルダとして user-cart/item へと移動してしまうのだ。この余分なスラッシュがついている場所を見つけ出さなければならない

WELCARTのコードを調べてみたけど問題はなさそう(大量にファイルが有ったのでダウンロードしてから調べたよ)。関連するテンプレートも問題なさそう。うーむ。そこでコードを追っていったところ、$permalink_structureという部分を見つける「あれ?これはどこかで見たような」。昔々、Wordpressのコードを追ったときに見た気がする。そして、名前の通りこれは「パーマリンク」に関することだ。「は!もしや」

さっそくWordpressの管理画面の設定→パーマリンクを見てみる。すると最後の部分にスラッシュがついている。「これだ!」本来であれば、ここにスラッシュはいらない。いらないんだけど、例えここにスラッシュがあってもWordpressは問題なく動作する。基本的にリンクは絶対アドレスで指定されているからだ。しかし、WELCARTは相対アドレスになっているため、スラッシュの有無に重要な意味を持つ

問題あるのあるサイトはスラッシュがある、問題ないサイトはスラッシュがない

ということを報告。実際に試したところ無事に問題が解決した。とても感激してくれて、思わずハグされちゃった。それほど苦しんでいたそうなのだ。奥さんも本当に苦しんでいたと教えてくれた。私のプログラムのコードを読む知識が役に立って何よりだ

しかし、振り返ってみると「パーマリンクをチェックする」は早く気付けたかもしれないなーと思ったりもする。意外と問題というのは身近なところだったりするからね。でも、WELCART上だけで問題が発生していたので気づくのが遅くなったのだと思う。しょうがないね。いずれにしろ解決できたのだからOKだろう

そして、これもまた作業会の良い面だね