メニューづくり(sidebar.php)の苦労

メインメニューを作るのにちょっとばかり苦労したので苦労話をメモ。

まず、メニューを折りたたみ式にしたかったのと、メニューの中にカテゴリーだけでなく、ページ部分も自由に入れられるようにしたかったので、list_cat関数を取り外し、手作りメニューに変更。サブメニュー部分の折りたたみは、親メニューをクリックするたびに子供メニューのdisplay属性をjavascriptで変更してやることで実現。(参考:au one netの講座

・・・と、ここまではau one netのおかげですんなり。
しかし、どこかのサブメニューをクリックして、例えば「北海道・東北」(の灯台放送)というサブカテゴリーを表示させると、ついさっきまで開いていたサブメニューは閉じている状態(初期状態)になってしまう。

初期状態でのdisplayを「none」か「block」かのどちらかに固定している以上、これは避けられない・・・・待てよ、「今、表示されているカテゴリー番号」を読み取って、当該のカテゴリーだけサブメニューが開くように制御できれば問題は解決するはず。

ただ、カテゴリーはたくさんあって、if文の山になりそうなので、カテゴリーを階層化し、親カテゴリーの番号を読み取って、その親の下にあるサブメニュー(サブカテゴリー)だけ開くことができれば少しはスマートかも。

で、探してみたところ、ありました。このサイト。ありがたやありがたや。 親メニューの1つ1つに、if文、今のところ合計7つを入れないといけない、やや見苦しい状況になってしまったが、とりあえず目的は達成。めでたし。

問合せメールプラグイン(contact-form-7)の問題


このプラグイン、下の記事で、『pタグの自動生成を無理やり止めてしまったので、問合せ内容が見にくくなるだろう』、なんてことを書きましたが、無実でした。問合せ内容は、普通に改行コードが入っていれば、ちゃんと改行されて送られてきました。めでたし。

ところが、テスト用に受信してみたメールを見て面白いことに気が付いてしまいました。
例えば、zzzz@aaa.comというメールアドレスを持つAAAAさんが問合せメールを送ると、サイト管理者に届いたメールは、「サイト管理者からの転送メール」というかたちではなく、AAAAさんからサイト管理者宛に直接メールが届いたように表示されるのです。
言い換えると、送信元メールアドレスにzzzz@aaa.comがきちんと格納されてしまっているのです。

・・・・多くのかたはもう問題点にお気づきだと思いますが、この仕組みを悪用すると、SPAMメール(嫌がらせメール)が簡単に実現できてしまうのです。何しろ任意のメールアドレスで送信ができてしまうのですから。。。。いいのか?こんなことで。

pタグ問題の続き


めでたく解決したpタグ問題ではあったのですが、さっき、「お問合せ」のページを作ろうと、contact-form-7というプラグインを導入させていただいたところ、再び問題が。。。。

このプラグインはシンプルですが大変使いやすく、あっという間にお問合せページが完成したのですが、うん?これまでの記事の表示が、なんとなくいつもと違うような。気のせいかな?いやいや、明らかに表示が崩れてるところがあるぞ。

念のために、と思ってソースを表示させてみると、何だこりゃ!撲滅したはずのpタグが、うじゃうじゃ入っているじゃありませんか。しかも、撲滅前よりも増殖してるし。。。まるでシロアリか何かのようだ。。。。

まさかプラグインが何かしてるのかな?と思って調べてみると、・・・・何かしてました。
wp-contact-form-7.phpというソースの中でpタグを作り直していたのでした。
しかもご丁寧に、『Original wpautop function has harmful effect on formatting of form elements』と、pタグ作成ルールを変えた理由までコメントで書かれています。

あんたもたいがいharmfulやんか・・・・、と思いつつ、該当の箇所(44行目と45行目。contact-form-7のバージョンは7.1.7.4です)をコメントアウトして、とりあず問題は解決。

ただ、察するに、お問合せメールのフォームが、自分でHTMLのコードを入れない限り文章が全部くっついてしまうんだろうな、と思われます。まあ、そのくらいはガマンしますよ。。。。

サイト立上げまでの思い出話(と愚痴・・・)


灯台放送ファンのサイトは、実は昨年(2007年)11月ごろ、まずはYahoo!のブログサービスを使って立ち上げかけていました。当時、楽天とかlivedoorとかいくつか無料のブログサービスを比較してみて、圧倒的にシンプル(広告ゼロ)なところが気に入ったからです。

ところが、これはあまりにシンプルすぎました。致命的だと思ったのは、画像の掲載が「最初の一度」しかできない(何で??)という点です。Yahoo!に聞いてみたところ「申し訳ないですがそういう仕様です。」とのこと。何だそりゃ・・・・。

というわけで、早々に退散し、再度サービスを選び直して決めたのが、exciteのexblogというサービス。これも広告はほとんど入らず、編集機能も普通に使えたので、これでいこう!としばらくページを追加していっていました。しかし、これもイマイチだったのは、サムネイル画像が使えないということ。大きな画像は大きな画像のまま表示されてしまう。それに、この手のサービスでは当たり前なのでしょうが、「投稿日付の新しい順」にトップページに表示されてしまうのです。

日記を書いてるわけではないんだけどな・・・と、結局これも途中で挫折。挫折している間にSPAMコメントがつき始めて、いよいよテンション低下。orz

————————–

で、あらためて自分のニーズをまとめてみると、

(1)トップページを固定したい。
(2)画像は、highslideというちょっとこじゃれたjavascriptを使いたい。
(3)投稿日付に関わらないページを大量に簡単に作りたい。
(4)広告は、不要。(少しくらいなら可)

要するに、ASPのサービスではなく、自分でサイトを立ち上げるしかないな・・・「ページを大量に簡単に作る」というためには、やはりブログツールが良いだろう、世の中の実績が多いという点では、やっぱりwordpressかな・・・と決めたのが昨年末。

————————–

「wordpressというのは、『ページ』という概念があるので ビジネスサイトとしても使いやすい」という宣伝文句も色んなところで聞いていました。また、ちょっとググると、wordpress用highslideモジュールというのも出回っている様子。

「なんだぁ~。至れり尽くせりぢゃないかぁ~」

というわけで、WP2.2.3をいそいそとインストール。続いて、highslide用プラグインも導入。作業はあっという間。トップページの固定も簡単。スバラシイ。

ところが。まず、highslide用プラグインというのが、まあ確かに嘘では無いんですが、記事を投稿する際に、「class=highslide onclick=ごにゃごにゃ」というおまじないを、都度都度書いてやらないといけないという仕様。しかも私の場合、highslideでの表示のしかたはいつも同じなので、投稿のたびに同じ作業を繰り返さないといけない。これは知能のある人間に対する仕打ちとしていかがなものか?

というわけで、upload.jsというファイルを少しいじって、おまじないの自動生成には成功。しかし、ここでWP2.2.3の落とし穴が。
過剰な親切というか、大きなお世話というか、連続した改行(brbr)を勝手にpタグに変換してくれるものだから、画像とテキストを混在させたときにテキスト配置が勝手に変わり、画像とテキストのバランスを取るというつまらない作業にエラく手間がかかるのです。

————————–

・・・ここで、私は進むべき方向を一度誤ってしまいました。
「pタグ自動生成」をなんとかする、という方向に走ればよかったのに、「余計なお世話をしないであろう、少し古いwordpress(2.0.3)に変えてしまへ・・・」と、再インストールに走ってしまったのです。

2.0.3にしたおかげで、記事編集のストレスは激減。ソースの構成が2.2.3とは全然違うので、highslideを動かすには、upload.jsではなく、inline-uploading.phpというソースをいじらないといけませんでしたが、それはそんなり完了。やった!

・・・と、よろこんだのも束の間。ここにもとんでもない落とし穴が。2.2.3ではいとも簡単に実現できた「トップページの固定」が2.0.3では(素の状態では)できないのです。「えっ!」と思ってネットで探してみるといくつかプラグインが見つかりました。まず試したのはfilosofoというプラグイン。たしかに、説明どおりに作業すると、トップページの固定はできました。できたものの、大前提として(デフォルトでない)パーマリンクを施してやらないといけない。しかし、パーマリンクを設定してしまうと、highslideの動作ディレクトリが(見かけ上)不定になって、highslideが動かない・・・・orz。

そのほかいくつかプラグインを試してみたものの、どれも不芳で、結局、記事編集の手間がかかるのを諦めて2.2.3に戻すことに決定。

————————–

ところが、(もっと早く調べたらよかったんですが)pタグの自動生成を鬱陶しいと思っていた人は世の中にいっぱいいたらしく、対策方法もすぐに見つかりました。
お名前はわからないのですが、このサイトの記事どおりに修正すると、pタグ生成を簡単に止めることができました。ホント感謝です。

めでたし、めでたし。

HTML convert time: 0.334 sec. Powered by WordPress ME