wordpress菜鸟主题之基本框架篇

前两篇文章都在打基础,如果你还能看得懂,那么我们就开始真正动手来做一个主题吧。这次的主要任务就是搭建起一个最基本的主题框架来,捎带着要把header.php文件的头部做好,也就是从现在开始,我们要接触主题核心代码了,你做好准备了吗?

首先新建一个文件夹,名字叫做starter theme,然后打开你常用的编辑器,如我们第一篇文章提到的,或者是editplus,或者是notepad++,或者是其他什么,总之能用就行。新建五个文件,分别保存为style.css、header.php、index.php、sidebar.php、footer.php,文件类型保存的时候,请务必选择utf-8且不带bom编码方式,因为我们的代码中会出现很多汉字,只有这种不带bom的utf-8编码方式才能识别汉字,否则会出现乱码。

文件编码类型示意图

打开你的style.css文件,在文件头部添加如下代码,然后保存关闭。

/*
Theme Name: starter theme
Theme URI: http://shaodaishan.com/
Description: 这是一个具备基本功能的wordpress主题,是我的wordpress主题制作菜鸟养成计划的重要工具,
你可以从这里学会如何制作属于自己的wordpress主题。
Version: 1.0
Author: 啄木游弋,公卫研究生小站站长
Author URI: http://shaodaishan.com/
*/

上面代码的含义应该不用解释吧?就是主题名字、主题网址、主题描述以及版本、作者、作者网址等信息。如果是自己制作主题,你可以不在各个项目后填写任何东西,但这几行空白代码却是必须要添加到style.css文件最顶部的,它是wordpress程序识别主题的一个接口,没有这个接口,wordpress就不认识它是个主题。

然后打开你的index.php文件,把我们上篇文章中提到的html框架结构代码复制进去,然后你的index.php现在应该是这个样子的。

<body>
<div id="wrapper">
<header>
</header>
<section id="main">
<section id="posts">
</section>
<aside id="sidebar">
</aside>
</section>
<footer id="footer">
</footer>
</div>
</body>

请注意我在代码书写上的缩进样式,第一原则仍然是“有始有终”,第二原则是按照层级关系调整代码缩进样式。这些代码在网页中的将会如何显示?请看一眼上篇文章中的那个框架图就明白了。

接下来要做的工作是代码切割,我反复说过,主题制作就像拼图游戏,而上面的代码是一个完整的大图,我们现在需要把它切割成四块小图片。首先,将代码1-5行剪切到header.php,并保存;然后将代码8-9行剪切到sidebar.php,并保存;剪切代码10-14行到footer.php,并保存;现在我们的index.php中只剩下了第6、7行代码,也保存一下。

然后在index.php的顶部添加如下代码

<?php get_header();?>

继续在index.php的底部添加如下代码,然后保存。

<?php get_sidebar();?>
<?php get_footer();?>

现在我们的index.php文件应该是这个样子的

<?php get_header();?>
<section id="posts">
</section>
<?php get_sidebar();?>
<?php get_footer();?>

解释一下刚刚在index.php中添加的三句php代码的含义,其实看字面意思就明白了,它们分别在index.php文件中调用了header.php、sidebar.php以及footer.php,这种调用过程是在浏览器运行的时候发生的,不就相当于通过三句php代码完成了这个拼图游戏嘛,很好理解对不对?

一个css文件,四个php文件,现在starter theme的核心文件框架已经有了,下面需要做的就是我往里面添加内容了。我们首先打开header.php,这是主题的头文件,许多关键代码都要写入这个文件里面。下面是我添加完代码后的header.php。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php wp_title('|',true,'right'); ?><?php bloginfo('name'); ?></title>
<meta name="keywords" content="填写你的网站的关键词" />
<meta name="description" content="你的网站的简单介绍" />
<!--下面这几行,看不懂就算了,主要是提供文章以及评论的rss订阅地址,以及pingback地址用的,嘿嘿-->
<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed"
href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?>Comments RSS
Feed" href="<?php bloginfo('comments_rss2_url');?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<!--下面这行,引入主题外观最重要的css文件-->
<link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo( 'template_url' );
?>/style.css" />
<!--下面我要引入js库,引入js库后,主题可以实现很多js特效,后面细讲-->
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery-1.7.2.min.js"></script>
<!--下面的代码是为了实现html5在IE浏览器中的兼容性-->
<!--[if lt IE 9]>
<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script>
<![endif]-->
<?php wp_head(); ?>
<!--下面这句代码的目的在于让主题支持嵌套评论-->
<?php if(is_singular() ) wp_enqueue_script('comment-reply'); ?>
</head>
<!--万恶的head终于结束了,代码是不是很长?看起来很头大?其实根本不用去懂,直接照抄,
哈哈,主题制作好简单,妈妈再也不用担心我的学习-->

<body>
<div id="wrapper">

<header id="header">
<hgroup>
<h1><a href="<?php bloginfo('url'); ?>" title="<?php bloginfo('name'); ?>">
<?php bloginfo('name'); ?></a></h1>
<h2><?php bloginfo('description'); ?></h2>
</hgroup>
<!--上面两行,分别设置了网站的大标题以及网站的描述-->
<nav id="mainmenu">
<?php wp_nav_menu(); ?>
</nav>
<!--上面这句代码是设置导航菜单的-->
</header>

<section id="main">

为了便于大家的理解,我已经尽可能在每一小部分代码处都添加了注释,这回应该问题不是很大吧?不要看到这么多代码就头晕,仔细瞧瞧,是有规律可循的,而且每一小块是用来干什么的,我都告诉你啦,你自己如果要做主题,其实这一块内容直接复制粘贴就行的,代码已经在我的本地电脑上运行过了。

over,今天就到这里,所有代码都有行号,哪一行不是很明白可以给我留言,我们一起讨论。这回不能一行一行的解释了,代码太多,解释不过来啦。哈哈


11 comments

    • section就是一个html标记,如我所述,是咱们玩“拼图”的一种“图片”。article、header都是这么个意思。

    • 呵呵,欢迎欢迎,我这里可能暂时没灵感给你,只是一些主题制作的基础知识,个人经验,基础打牢固了,就什么都好办了。嘿嘿,帮你给网站更换logo的方法,就是一种很基础的思路,仔细领会下哦。网页中的各种图片,要么是直接以图片插入的,要么是用背景图的方式插入的,你那个主题的logo就是用背景的方式添加的。

    • 个人经验,以前也提过,抛开各种很炫的效果,一个wordpress主题的核心就是css渲染,其实文件架构基本都是一致的。当然,对于追求cms或者各种瀑布流之类的架构,另当别论,我也不懂。这个教程的最后,可能我会放出一个自己做的主题,当然会很基础,css渲染也会很基础。

        • 我觉得,css就是画笔,电脑屏幕就是纸,不就是在这里涂成红色,在那里涂成绿色,然后这里画一朵花,那里放一片草嘛。不过,理论都懂,具体怎么放,会让人感觉很漂亮很美观,这个就比较难,至少我还做不到。目前这个主题的配色,就是仿照别人来的。

    • 大湿的支持力度太大了,感激涕零,来北京吧,我给你请面条吃。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.