診断士の経営視点とSEのシステム技術の両面からIT・システム開発・Web技術+アウトドア情報を提供しています

トップブログでつくるビジネスサイト無料ブログでここまでできるCMSでつくるビジネスサイトウェブ講座&SEOシステム開発個人情報保護Googleでお仕事信州撮っておき情報








スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[--------] スポンサー広告 | |

WordPressで複数のウィジェットを使う 

WordPress2.2以降ではサイドバーの要素を自由に配置変更できるウィジェット widget が標準装備となっている。WordPress標準のテンプレートでは2カラムレイアウトを採用しているため、ウィジェットも1個だけだが、複数のウィジェットを使って3カラムに対応させた。

ウィジェットをいくつ使うかは functions.php で指定する。WP2.1以前にはこのファイルがないので新規作成することになる。ただし、functions.php はログインやテーマエディタでも参照しているようなので(あるいはfunctions.phpでグローバルエリアの設定を書き変えている?)変更の際は十分注意すること。

2.2既定のfunctions.php
<?php
if ( function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' =>'</li>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));
?>

3カラムの左右に1個づつ、2個のウィジェットを使うには function.php のregister_sidebar を register_sidebars (複数!)にして、カッコの中にウィジェットの数を指定する。
<?php
if ( function_exists('register_sidebar') )
register_sidebars(2);
?>

これで管理画面の表示 ウィジェット画面に 2個のウィジェットが現れる。

sidebar.php をもう一つつくる。
標準の sidebar.php をベースに 左右のウィジェットを呼び出す sidebar1.php と sidebar2.php を作る。各phpの先頭に対応するウィジェットの番号を設定する。

<?php /* Widgetized sidebar, if you have the plugin installed. */
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : ?>
上は 2個目のウィジェットを対応させた例。

標準の sidebar.php を dynamic_sidebar(1) として、新規のサイドバーを dynamic_sidebar(2) としても良いが、 get_sidebar() では sidebar.php しか呼び出せない。
get_sidebar も使わないことにして sidebar1.php sidebar2.php を <?php include(TEMPLATEPATH.'/sidebar2.php'); ?>で呼んだ方が後々理解しやすいかもしれない。

ウィジェットはメニュのタイトルとして h2 を返している。expssのスタイルとしては、h1でページタイトル、h2でページ説明、h3で記事やメニュのタイトル という使い方をしているので、ウィジェットの h2 は具合が悪い。functions.php で ウィジェットタイトルとして h3 を返すように手を加える。

<?php
if ( function_exists('register_sidebar') ) {
register_sidebars(2);
register_sidebar(array(1,
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' =>'</li>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));
register_sidebar(array(2,
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' =>'</li>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));
}
?>

上のソースでは、ウィジェット1では タイトルに h3 、ウィジェット2では h2 を返すように設定した(詳細にWPのソースを検討したわけではないが、実験の結果、これでうまくいっている ということで記録することにした)。

佐藤先生 いつもありがとうございます。
ヤマダがWPをいじり出したらこの記事がUPされて
とても嬉しく思います。
一生懸命勉強しますので お見捨てなきようお願いします!

さっそくですが、ウィジェットとは
機能拡張と捕らえてよろしいでしょうか?
[ 編集 ] [2008/01/22 11:03]

ウィジェットとは

ウィジェットとは、サイドバー(WP標準では右サイドのメニュー)の内容を自由に入れ替えることができる機能です。一番上にカテゴリ、次に最近の記事、その下に検索フォーム、その下にRSS・・・など、お好きなブロックをドラッグ&ドロップで配置することができます。
標準で備わっているブロックは上記のほかに、アーカイブ、カレンダ、リンク、ページ、メタ情報(ログイン、ログアウトへのリンク他)などがあります。テキストブロックに任意の画像や文字を入れて配置することもできます(店舗案内、店主からのメッセージなどなど)。
標準のブロック以外は選択できないのが残念ですが、ブロックを選択して、上下を移動して配置できるのでケッコウ便利モノです。
WPの管理画面 > 表示 でウィジェットへのリンクが出てきます。
もともとはプラグインとして配布されていた拡張機能が標準になったものです。
[ 編集 ] [2008/01/22 20:18]

function.php と functions.php

突然失礼致します。
つい一ヶ月程前からWordPressを始め、PHPを始めて弄り始めました。
今まで、htmlとcssでのサイト構築だったのですが、WordPressで作成された素敵なサイトの数々を拝見するにつれ、自分でもデザイン(テーマ)を弄ってみたくなり挑戦中です。

サイドバーの読み込みかつウィジェットの反映で躓き、色々なサイトを読みながら、どうやらsidebar.phpに特定のphpコードを書き入れる、function.phpというファイルを作ってそこにまたphpコードを記載する。
という解を得ましたが、結果はうまく行かず、結局WordPressに付属してきたデザインを確認し、function.phpだと想っていたファイルの名前が、functions.phpだと気付き訂正したところ動作致しました。

とここで、疑問が残りました。
このfunction.phpfunctions.phpの違いとはなんなのでしょうか。

2.5.1のバージョンからfunction.phpであったものが、functions.phpになったのか、とも考えたのですが、こちらの記事を拝見し、どうやらそうではないと推測致しました。

しかし、こちらにもfunction.php(3カラムの左右に1個づつ、2個のウィジェットを使うには function.php のregister_sidebar を)functions.phpの両方の記載があり、この違いが分からず困窮しております。

長々と不躾なコメントを差し上げて心苦しいのですが、もしご教授頂ければ幸いです。
[ 編集 ] [2008/07/14 08:54]

混乱させてすいません

Moonさん、コメント&ご質問ありがとうございます。

> function.phpとfunctions.phpの違いとはなんなのでしょうか。
混乱させてすいません。functions.php です。
すべて functions.php と書いたつもりでしたが、一か所 Moonさんが引用された部分が function.php となっています。

>> 3カラムの左右に1個づつ、2個のウィジェットを使うには
>> function.php のregister_sidebar を ・・・の数を指定する。
このfunction.php は誤りです。 functions.php に訂正してください。混乱させてすいませんでした。

2カラムの場合は既定のままでOKですが、3カラムにウィジェットを対応させるには、記事のような対応が必要になります。

記事にも書いていますが、functions.php にはいろいろな機能が書かれています。既定のファイルを保存して、動作がおかしくなったら、すぐ元に戻せるようにしておくことをお薦めします。
[ 編集 ] [2008/07/14 17:59]

コメントの投稿













管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://wiz2.blog16.fc2.com/tb.php/262-fec74b6a


-

管理人の承認後に表示されます
[2009/05/05 20:31] URL






トップブログでつくるビジネスサイト無料ブログでここまでできるCMSでつくるビジネスサイトウェブ講座&SEOシステム開発個人情報保護Googleでお仕事信州撮っておき情報
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。