RSS等をサイトに表示させたあたりで、ウィジェットが気になって対応させてみることにした。
1本目のサイドバーはあっさりできた。
同じように2本目のサイドバーをいじってみると、うまくいかず。
そこであきらめてWebの説明を見ることにしました。
テーマに複数のサイドバーがあります。すべてを動的にするにはどうすればいいですか?
ああ、これは簡単です。register_sidebar() の代わりに register_sidebars(n) を使用してください。n はサイドバーの数です。そして 1 から始まる適切な数字を dynamic_sidebar() 関数にいれます。(こうした関数の使い方は他にもいくつかあります。API/enを参照してください)
簡単なのか?<公式
具体的に、どこの、どれをいじればいいのかかなり書いていない。知識があればそんなこと聞くまでもないのだろう。
だが、知識はない。だから適当にやってみた。
そもそもregister_sidebarっていうのはどこにあるのか? さっきはコピペしたので、内容は把握していない。
どうやら、function.phpか、と思ったが、WordPressのフォルダにアップしたファイルの原本がない。レンタルサーバーのWebツールであるFTPサービスで、直接ファイルを作ってアップしてしまったのだ。(コピペだし)
手元にファイルはないが、サイト上にはあるので、直接いじってみることにする。
テーマの編集にfunction.phpがあったことも知らなかったので、わざわざロリポのWebツールのFTPを開いて、そこでファイルを編集した。
<?php if ( function_exists(‘register_sidebars’) ) register_sidebars(2, array(‘name’=>’wsidebar%d’)); ?>
こんな感じにしてみた。説明文の中にあった式を適当にチョイス。
wsidebarの1と2ができるように…なったのかわからなかったので、ウィジェットをクリック。
おお! サイドバーが二つに増えている!
→できたのかなーとワクワクしサイトを確認。右左2つ同じものが表示。→失敗
失敗だが、良かった探しをすると、1本目は、ちゃんとコピペのコードでwsidebar1と認識されているということだ。
と、いうことは2本目だけが問題?
1本目と同じコードが埋め込んである2本目のコードをじっと見て、
<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(wsidebar2) ) : ?>
括弧の中にwsidebar2という名前をぶっ込んでみた。
1本目は空欄のままです。
適当に保存。更新してみる。
すると、2本目がちゃんと2本目に!! 成功〜\(^_^)/
ちゃんとPHPをわかっていてプログラムをわかっていればなんてことないのかもしれませんが、勉強はまだこれからである自分には敷居が高い。適当さで超えるしかない敷居なので、まあ、いいんですが。
できたはいいが、デザイン的にかなりダメになったので、そこはまた考えます。