3.2 Index.php
以WordPress默认模板的index.php为例。我们先来看看它的结构:首先,通过<?php get_header(); ?>获得头信息;然后是一个循环体(The Loop,不知这样叫对不对);最后通过<?php get_sidebar(); ?>和<?php get_footer(); ?>加载侧边栏和页脚。
熟悉The Loop的用法能够让你随心所欲的控制文章的输出,因此我们来着重了解一下The Loop:
WordPress使用一个循环体来控制正文内容的显示,文章将按循环体内代码所定义的格式输出到当前页面上。部分模板标签必须在循环体内使用,如每篇文章的标题(the_title()),时间(the_time())和分类(the_category()) 。
简单表示如下:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
…找到相关内容则按格式输出正文…
<?php endwhile; else: ?>
…否则输出错误信息…
<?php endif; ?>
The Loop的用法非常灵活,比如你可以将其和分类标签结合起来以限定某个页面或某一部分只显示某个或几个分类的内容,这就是一个最简单的Asides。有兴 趣的自己不妨找找相关插件或模板来看看。我在这里仅举两个简单的例子。比如,如果你想要某一页面只显示分类x(x代表该分类的ID)的内容,你可以这样 写:
<?php if ( have_posts() ) : while ( have_posts() [...]
三、模板文件解析
首先提一下WordPress的模板标签(Template Tags)。WordPress提供的模板标签十分丰富,你几乎可以利用它们把主题做成任何你想要的样子。了解并掌握重要标签的形式和用法是进行 WordPress主题开发的重要环节。WordPress Codex给出了大部分Template Tags的说明,我就不做重复劳动了。
进入正题,我们以WordPress Default 1.6为例,尽可能详细的分析模板文件中所用到的相关代码及技巧。
3.1 Header.php
我们从头开始好了。打开Header.php,在这里我们可以看到不少常用的模板标签,其中<?php language_attributes(); ?>是WordPress 2.1新增加的标签,用于在头部输出“lang=’zh-CN’”这样的语言标记,站点语言可以在后台定义。
在这里,你可以看到<?php bloginfo() ?>是一个被使用多次的模板标签,用于显示一些站点的相关信息,比如标题、网页类型、字符集、样式表链接、Rss链接等等。其用法是:
<?php bloginfo(‘show’); ?>
Show是你想要显示的内容,可以是:name、description、url、charset、stylesheet_url等等,具体请见http://codex.wordpress.org/Template_Tags/bloginfo
另外,<title> </title>之间的代码用于输出网页的标题,先看WP默认模板的标题输出:
除了用<?php bloginfo(’name’); ?>输出Blog的名字之外,该模板还使用了”is_single()”函数来判断当前页面是否是单篇汇整页面,如果是,则输出<?php if ( is_single() ) { ?>…<?php } ?>之间的语句。
这是一个非常常用的技巧,它允许你使用一段代码控制不同页面的输出效果,简便且灵活。除了is_single()之外,常用的还 有:is_home()、is_page()、is_paged()、is_archive()、is_search()、is_404()、 is_tag()。意思都很好理解,is_paged()就是某个存档的除第一页外的后n页(这个解释很别扭,俗称“上一页”…)。
如果非再要举个例子,那就来一个豪华的,K2的theloop.php。有别于普通WP模板按网页结构和存档性质划分模板文件的方法,K2使用 theloop.php来定义全部页面的正文内容输出,主要手段就是通过上面提到的那些函数来判断当前页面的性质以输出相应的内容。尽管原理很简单,但这 种处理模板文件的形式大大简化了代码编辑工作,因为你只需要通过一个模板文件中的几行代码就可以改变几乎任何一个页面上的内容。
如果你想要某页面不显示某些内容,只要在is前加上感叹号表示否定即可,例如:
<?php if ( !is_home() ) { ?>…<?php } ?>
最后,在</head>之前,一定会有一个<?php wp_head(); ?>,wp_head()用于获取一些插件或者主题所需的功能,这些功能通常是在后台就定义好的,比如在一些主题和插件里你可以看到 [...]
我决定静下心来,好好的写一些东西,最好能把我这一年多来设计WordPress主题的体验记录下来,和大家分享。
这会是几篇半教程性质的手记,估计内容会很杂,也很难写成体系,所以我打算写到哪算哪。有兴趣的随便看看吧,兴许能找到一两个有用的点子。
今天先扯开发WordPress主题可能用到的工具和资源,并简单介绍一下WordPress主题的结构……我废话又多了,开始吧。
一、开发工具及相关资源 本地WordPress架设:Xampp(WordPress官方也推荐了这一软件组合,方便实用)。 代码:Dreamweaver(我选择它仅仅是出于习惯,你完全可以选择一个更称手的)。 图像:Photoshop、Illustrator、Fireworks之类之类。 版本控制:Google Code,在教育网利用svn往google code上传东西实在是太慢了,不过还是推荐。 浏览器测试:Firefox(当然,少不了Web Developer Toolbar)、Internet Explorer 7、Mutiple IEs(包含可独立运行的IE3——IE6)、Opera、Swift(基于WebKit引擎的浏览器,用于Safari兼容性测试)。 相关站点: WordPress Codex WordPress Hooks WordPress Theme Viewer 二、WordPress主题结构——模板文件及其调用
传统的网页通常使用HTML来控制页面结构,并通过样式表(CSS)来控制页面的表现。WordPress也使用样式表来控制网页的表现,但其页面 内容则是由几个模板文件(Template Files)共同构建而成的。其中一些模板文件是全局性的,比如头信息和页脚模块,而有一些则只用于特殊场合。
这些模板文件通常由XHTML和简单的PHP代码构成,只要你有一些基本的网页知识,并且知道什么是“if…else…”,就不用太担心代码问题 ——当然,掌握一些基本的XHTML、CSS、PHP和Javascript知识,还是大有好处的。在文章中,我会尽量少涉及模板之外的代码,很多东西, 不是拿来谈论的,比如网页标准,我们遵循它,使用它,就可以了。
我们习惯性的将网页分解为 “头信息(Header)”、“内容(Content)”、“侧边栏(Sidebar)”、“页脚(Footer)”这几个主要部分,而这也是主要 WordPress模板文件划分的依据。通常一个普通的WordPress主题会包含一下几个模板文件:
样式表:style.css 头信息模块:header.php 内容模块:index.php、page.php、single.php、archive.php、search.php、404.php 侧边栏模块:sidebar.php 页脚模块:footer.php 评论模块:comments.php 搜索表单模块:searchform.php
其中,style.css用于定义主题的外观;头信息模块定义了网站的基本信息,比如标题、关键词等等;站点的主要内容使用index.php输 出,page.php用于输出分页内容,而single.php则被用于单篇汇整,404模块用于返回站点404错误信息;sidebar.php包含了 网站的一些次要内容,比如订阅、分类、链接等等;页脚信息通常会包含站点的版权等相关信息;而其他模块所含内容视情况而定,比如comments.php [...]
都说wordpress的title标签原本不利于搜索引擎优化,title标签原本是按照 博客名>文章名 显示出来的。对搜索引擎并不友好,懒的找wordpress中文插件的朋友、或者觉得插件影响速度的可以用以下代码直接实现 wordpress的title标签的优化,实现对搜索引擎的友好。
进入你的wordpress后台管理-外观-主题编辑器-页眉 也就是编辑header.php文件
<?php wp_title(”); ?> <?php if ( is_single() or is_page() or is_category() ) { ?> – <?php } ?> <?php bloginfo(’name’); ?>
将上面的代码覆盖<title>。。。</title> 就可以
其中用到的wordpress函数解释
<?php wp_title(”); ?> 这个是输出你当前文章的标题
<?php if ( is_single() or is_page() or is_category() ) { ?> – <?php } ?> 这个是说:如果是 单篇文章、页面文章、或者标签页 输出一个 [...]
At least five new WordPress themes are introduced everyday on this free Net and that gives us a few good thousands of free
WordPress themes floating around the internet. Have you ever wondered which [...]
作为博客写手、网页设计师和元老级网民,我们每天要浏览许多的网站和博客。除阅读之外,我们也会对其它所有相关都会感到好奇。这些好奇往往产生 自网站(博客)的数字和数据,例如页面点击量、Feed订阅数、排名、网站虚拟主机和网站的价值等等。暴风彬彬建议你看看这篇《通过27个网站分析工具了解网站的9个有趣真相》。暴风彬彬在此之前也曾经推荐过《20个免费的SEO网站分析工具》,如果感兴趣,也可以去看一看。
1.流量 | 访问量,页面点击量,排名
2.页面读取(载入)时间
[...]
<?php
wp_list_cats(“sort_column=name&optioncount=1&feed=RSS“);
?>
这句就是告诉它分类要依照名称排序、并显示拥有的文章数量、而且分类要显示分类RSS连结。
各个自设选项列表如下
sort_column
ID 或 name,预设为 ‘ID
分别为依 ID 值或分类名称排序
sort_order
asc [...]
-
Calendar
May 2012 M T W T F S S « Feb 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -
Meta

