2013年10月06日 web関連WordPressphp

WordPressで自作のテーマを作った場合などは、自分でウィジェットを利用可能にしない限り、ウィジェットは利用出来ません。このサイトのテーマは自作なのですが、今までウィジェットは使う機会がなかったので、未対応のままになっていました(:_;)

今回は、サイドにWordPress Popular Postsプラグインの人気記事一覧を表示させたかったので、調べてみましたよっ!ってことで、ウィジェットに対応していないWordPressでウィジェットを利用可能にする方法です。

手順は簡単です。

1.ウィジェットを有効にする

functions.php
<?php
// サイドバーウィジェット
register_sidebar(array(
     'name' => 'side-widget', //作成するウィジェットの名前(お好きな名前で)
     'before_widget' => '<div class="widddget">', //ウィジェットを囲む開始タグ
     'after_widget' => '</div>', //ウィジェットを囲む終了タグ
     'before_title' => '<h3>', //ウィジェットタイトルを囲む開始タグ
     'after_title' => '</h3>', //ウィジェットタイトルを囲む終了タグ
));

?>

ウィジェットを作成するだけなら、functions.phpに、register_sidebar(); もしくは、register_sidebars();と記述するだけで、OKみたいですが、それだとウィジェットのタイトルやウィジェットを囲むHTMLタグの設定がデフォルト(h2とliかな?)のままになります。今回はHTMLタグも変えたかったので、before_widgetなどの設定をしています。

2.ウィジェットを表示させたい箇所に以下を記述

sidebar.php
<?php dynamic_sidebar('side-widget'); //functions.phpに設定した名前 ?>

functions.phpでregister_sidebar(); もしくは、register_sidebars();と設定しているだけなら、引数無しのdynamic_sidebar();でOKです。

むむむ・・・

本当に簡単だったので、ついでに複数のウィジェットの設定方法もまとめておきます。

複数のウィジェットを作成する場合

ウィジェットを左右のサイドバーで使い分けるなど、複数のウィジェットが必要な場合も上で説明したウィジェット設置時のfunctions.phpの内容を必要な数だけ追加し、呼び出したい箇所にdynamic_sidebarでnameかidを指定して呼び出してやれば、可能です。簡単ですね。

1.ウィジェットを有効にする

functions.php
register_sidebarで2つのウィジェットを作成
<?php
register_sidebar();
register_sidebar();
?>
register_sidebarsで2つのウィジェットを作成
<?php
register_sidebars(2);
?>
2つのウィジェット(widget1,widget2)を作成
<?php
register_sidebars(2, array('name'=>'widget%d'));
?>

上記どのパターンでも2つのウィジェットが追加されます。name,idを指定しない場合は、サイドバー1,サイドバー2みたいな名前で追加されます。functions.php内で上から書かれている順に番号が振られていく感じみたいです。2つ以上の場合は数字を変えるだけで作成可能です。

ここを見るとregister_sidebarsを使うほうが一般的みたいです。

2.ウィジェットを表示させたい箇所に以下を記述

複数のウィジェットの作成が完了したら、表示したい箇所に呼び出します。

sidebar.php
functions.phpでウィジェットのnameもidも指定せずに設定した場合
サイドバー1
<?php dynamic_sidebar(1); ?>
サイドバー2
<?php dynamic_sidebar(2); ?>
sidebar.php
functions.phpでnameかidを指定した場合
サイドバー1
<?php dynamic_sidebar('widget1'); ?>
サイドバー2
<?php dynamic_sidebar('widget2'); ?>

ちなみに、register_sidebardynamic_sidebarといった具合に、sidebarという名前になっているので、なんとなくサイドに置くのか。。って感じですが、ウィジェットはフッターやコンテンツなど好きな箇所に表示することが可能です。

この投稿へのコメント

コメントはまだありません。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA


ピックアップ記事

Dreamweaverで「既に別のドキュメントタイプに関連付けられているためです。」エラー頻発

2014年11月13日 web関連HTML5・CSS3
DreamweaverでSCSSファイルの編集をするためにDWの設定を触ったのですが、起動のたびに「ドキュメントタイプ”◯◯◯”は追加されません。使用するファイル拡張子が、既に別のドキュメントタイプに関連付けられているためです。」のエラーが連発するようになりました。 原因 調べてみると、Dreamweaverで編集可能にするために、「MMDocumentTypes.xml」というファイ…
「Dreamweaverで「既に別のドキュメントタイプに関連付けられているためです。」エラー頻発」をはてなブックマークに追加

有名サイトのロゴ フォント

2011年07月27日 web関連
Twitter …… Pico Alphabet (Modified)Digg …… FFF Forward (Modified)Last.fm …… National (Modified)Flickr …… Frutiger BlackYouTube …… Alternate Gothic No. 2Facebook …… Klavika (Modified)Engadget …… Engadg…
「有名サイトのロゴ フォント」をはてなブックマークに追加

WordPressで$postなどのグローバル変数を保持する

2011年06月14日 WordPress
ちょっとタイトルじゃ分かりづらい(少なくとも僕は。。)ですが、WordPressをカスタマイズしているとサイドメニューにカテゴリ一覧を出したり、ページ一覧を出したり、サブカテゴリや、サブページを出したり、、、、など色々することが多いと思います。…
「WordPressで$postなどのグローバル変数を保持する」をはてなブックマークに追加

WordPressサイト全体に認証をかける

2011年11月30日 WordPress
プラグインダウンロード 以下のサイト内から「Angsuman’s Authenticated WordPress Plugin」をダウンロードします。 Angsuman’s Authenticated WordPress Plugin プラグイン編集 プラグインの内容が古くなっていて、最新のWordPressの認証に対応していないので、以下のように書き換えます。 ac_authenti…
「WordPressサイト全体に認証をかける」をはてなブックマークに追加

PHP フォーム入力された文字エスケープ

2011年08月04日 php
PHPでフォームを作る場合、INPUTやTEXTAREAを使いますが、そこから受け取る内容はエスケープする必要があります。受け取ったまま表示したり、DB登録なんかをしてしまうと、思わぬトラブルにみまわれることになります。 …
「PHP フォーム入力された文字エスケープ」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy