↓メニュー

2008 年 5 月 5 日

Wordpress のテーマで ウィジェット(widget ) を使えるよう改造

chakra ^10:26 AM

このブログのテーマは自分で作ったものなので、当然ながら Wordpress のウィジェット(widget)には対応してません。

そこで何かと便利そうなウィジェット(widget )に対応するため試行錯誤してみました。
今回参考にさせて頂いたのは以下の2サイト様。

functions.php がなかったので新規に作成し、以下のコードを記述。

<?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' => '<h3>',
'after_title' => '</h3>',
));
}
>

参考にしたサイトでは sidebar.php を sidebar1.php と sidebar2.php にされていたが、sidebar.php に含ませることに。

<div id="sidebar">
<div id="sidebar1">
<ul>
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(1) ) : ?>
         </ul>
    <?php endif; ?>
</ul>
</div>
<div id="sidebar2">
 <ul>
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : ?>
   <?php endif; ?>
 </ul>
</div>
 <!-- END menu list -->
</div>

ウィジェットはメニュのタイトルを h2 で返しているので、これを h3 になるよう上記のように設定したが、ソースを見ても h3 にならず。

しょうがないので、 wp-includes/widgets.php を直接変更。

function register_sidebar($args = array()) {
	global $wp_registered_sidebars;

	if ( is_string($args) )
		parse_str($args, $args);

	$i = count($wp_registered_sidebars) + 1;

	$defaults = array(
		'name' => sprintf(__('Sidebar %d'), $i ),
		'id' => "sidebar-$i",
		'before_widget' => '<li id="%1$s" class="widget %2$s">',
		'after_widget' => "</li>\n",
		'before_title' => '<h2 class="widgettitle">',
		'after_title' => "</h2>\n",
	);

//  class="widgettitle" の h2 を h3 へ変更 //

function register_sidebar($args = array()) {
	global $wp_registered_sidebars;

	if ( is_string($args) )
		parse_str($args, $args);

	$i = count($wp_registered_sidebars) + 1;

	$defaults = array(
		'name' => sprintf(__('Sidebar %d'), $i ),
		'id' => "sidebar-$i",
		'before_widget' => '<li id="%1$s" class="widget %2$s">',
		'after_widget' => "</li>\n",
		'before_title' => '<h3 class="widgettitle">',
		'after_title' => "</h3>\n",
	);

これでウィジェット対応のテーマになり、widgettitle もh3 になりました。

今回は widgettitle の h3 化にかなり時間をとられてしまったが、
まぁ〜なんとか出来たのでよしとしよう。

ソカテゴリー:plugin
タグ:widget, WordPress
コメント1件
コメント投稿

≪*.XAMPPのphpMyAdminで大きなファイルを扱えるように変更
#.IE6でpng画像が透過出来ない

最新記事 | 最新コメント | アーカイブ | カテゴリー | タグ | ログイン
About | Sitemap | Mail
Converted by Ktai Style plugin.