分享

使 WordPress 主题支持 Widget

 外汇一点通 2012-02-22

使 WordPress 主题支持 Widget

昨天跟俩同学吹水了一天, 心情不错. 临睡前有行善的冲动, 帮网友小改了一下主题. 任务比较简单, 只是为一个三栏主题添加对 Widget 的支持而已.
事后有网友认为这样的做法欠妥, 要么鼓励收费, 要么授人以渔. 我想想也有道理, 打算以后少干这些活, 但多聊聊这些事. 就先从这次简单的案例开始说吧.

单侧边栏

functions.php

<?php
if( function_exists('register_sidebar') ) {
	register_sidebar(array(
		'before_widget' => '<li class="widget">', // widget 的开始标签
		'after_widget' => '</li>', // widget 的结束标签
		'before_title' => '<h3>', // 标题的开始标签
		'after_title' => '</h3>' // 标题的结束标签
	));
}
?>

sidebar.php

<div id="sidebar">
	<ul class="widgets">
<?php // 如果没有使用 Widget 才显示以下内容, 否则会显示 Widget 定义的内容
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) :
?>
	<!-- widget 1 -->
	<li class="widget">
		<h3>标题 1</h3>
		<ul>
			<li>条目 1.1</li>
			<li>条目 1.2</li>
			<li>条目 1.3</li>
		</ul>
	</li>
	<!-- widget 2 -->
	<li class="widget">
		<h3>标题 2</h3>
		<ul>
			<li>条目 2.1</li>
			<li>条目 2.2</li>
			<li>条目 2.3</li>
		</ul>
	</li>
<?php endif; ?>
	</ul>
</div>

双侧边栏

functions.php

<?php
if( function_exists('register_sidebar') ) {
	register_sidebar(array(
		'name' => 'Sidebar_1', // 侧边栏 1 的名称
		'before_widget' => '<li class="widget">', // widget 的开始标签
		'after_widget' => '</li>', // widget 的结束标签
		'before_title' => '<h3>', // 标题的开始标签
		'after_title' => '</h3>' // 标题的结束标签
 
	));
 
	register_sidebar(array(
		'name' => 'Sidebar_2', // 侧边栏 2 的名称
		'before_widget' => '<li class="widget">', // widget 的开始标签
		'after_widget' => '</li>', // widget 的结束标签
		'before_title' => '<h3>', // 标题的开始标签
		'after_title' => '</h3>' // 标题的结束标签
 
	));
}
?>

sidebar.php

<div id="sidebar_1">
	<ul class="widgets">
<?php // 如果没有在侧边栏 1 中使用 Widget 才显示以下内容, 否则会显示 Widget 定义的内容
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar_1') ) :
?>
	<!-- widget 1 -->
	<li class="widget">
		<h3>标题 1</h3>
		<ul>
			<li>条目 1.1</li>
			<li>条目 1.2</li>
			<li>条目 1.3</li>
		</ul>
	</li>
<?php endif; ?>
	</ul>
</div>
 
<div id="sidebar_2">
	<ul class="widgets">
<?php // 如果没有在侧边栏 2 中使用 Widget 才显示以下内容, 否则会显示 Widget 定义的内容
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar_2') ) :
?>
	<!-- widget 2 -->
	<li class="widget">
		<h3>标题 2</h3>
		<ul>
			<li>条目 2.1</li>
			<li>条目 2.2</li>
			<li>条目 2.3</li>
		</ul>
	</li>
<?php endif; ?>
	</ul>
</div>

N 侧边栏

请使用数学归纳法进行推理.
参考教材: 人民教育出版社全日制普通高级中学教科书数学第三册

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多