### [WordPress主题制作全过程(五):制作header.php](https://www.prosaas.cn/article/7643) **Published:** 2023-02-21T02:21:47 **Author:** 5201314 **Excerpt:** 前面给大家介绍了《WordPress主题制作全过程(四):小试牛刀》,本文继续给大家带来《WordPress主… 前面给大家介绍了《WordPress主题制作全过程(四):小试牛刀》,本文继续给大家带来《WordPress主题制作全过程(五):制作header.php》,下面一起来看一下吧~ 你可以尝试用文本编辑器打开从WordPress主题制作全过程(三):HTML静态模板制作下载到的 `.html` 文件,不知道你有没有发现他们头部的代码都非常的相似呢?其实我们可以提取这部分相似的代码,放到一个单独的文件`header.php`中,各个页面想用这部分代码的时候再用php的`include()`或者WordPress的`get_header()`包含进去,省的每个页面里面都要写这部分代码,更改起来也可以达到一改全改的目的。 **再次提醒:**如果你不打算动手编写代码,这个系列教程就别看了,对你无益! 接着我们上次创建的主题目录`wp-content\themes\Aurelius`,在该目录下新建一个php文件`header.php`,我们提取出`index.php`中的头部代码复制粘贴到`header.php`中,下面的代码就是目前`header.php`中的所有代码了(当然不同主题的头部代码都是不一样,在你实际的项目中可以自定决定): Aurelius | Blog

Aurelius

Our blog, keeping you up-to-date on our latest news.

再用文本编辑器打开`index.php`、`archive.php`、`contact.php`、`full_width.php`、`page.php`和`single.php`,删掉以上类似代码,改成: 好,现在打开你的测试博客主页,看看我们制作的主题是否还可以正常工作,答案是可以的,跟原来几乎没什么两样,但还是一片混乱。`get_header()`就相当于将`header.php`中的代码拷贝到当前的php文件。接下来,我们将仔细探讨`header.php`中的动态内容。`header.php`将会被所有的模板页面(主页、分类页、页面、标签页等)所包含,所以`header.php`中代码应该是动态,适合不同页面的,所以这里面需要用到PHP代码,而不是单纯的HTML。下面让我们一起来修改`header.php`: ### **1、更改** 我们都知道不同页面的title都是不一样,而且title的设置还会直接影响到SEO的效果,所以这里应该谨慎设置。下面提供一种SEO优化的title写法,将`Aurelius | Blog`改成: <?php if ( is\_home() ) { bloginfo('name'); echo " - "; bloginfo('description'); } elseif ( is\_category() ) { single\_cat\_title(); echo " - "; bloginfo('name'); } elseif (is\_single() || is\_page() ) { single\_post\_title(); } elseif (is\_search() ) { echo "搜索结果"; echo " - "; bloginfo('name'); } elseif (is\_404() ) { echo '页面未找到!'; } else { wp\_title('',true); } ?> 以上添加的php代码运用了条件判断,针对不同的页面采用不同title,这里解释一下这几个条件标签。 - `is_home()`:当前页面为主页时返回true - `is_category()`:当前页面为分类页时返回true - `is_single()`:当前页面为单文章页时返回true - `is_page()`:当前页面为单页面时返回true 到目前为止,可能你对这些条件判断标签还没有深入的认识,也搞不懂到底是用了这些标签会对主题造成怎样的影响的,随着我们教程的进一步深入,你会慢慢理解的。如果你不喜欢上面title的写法,可以自行上网搜索相关代码:`WordPress SEO title` ### **2、更改样式表style.css路径** 在此之前你看到的首页都是混乱的,原因是还没加载css样式。现在我们一起把样式加上。你可以在`header.php`中找到这一段代码: 聪明的你可能问:`wp-content\themes\Aurelius`目录下不是已经有一个 `style.css` 吗?那为什么 `header.php` 没有加载css呢?结果你是可以看到的,页面一篇混乱,可以确定确实没有加载到css。因为这是WordPress的主题,是要被WordPress的主程序调用,经过层层解析才能把你的博客显示出来,而不是简简单单的html静态网页文件。正确的改法: `bloginfo('stylesheet_url')`输出的是你的主题css文件绝对网址,如http://localhost/wp/wp-content/themes/Aurelius/style.css,WordPress程序会自动识别你的WordPress安装地址,当前启用的主题,自动输出这个style.css链接。现在你可以试着更改一下,然后刷新一下你的博客首页,查看网页源代码,style.css的链接是不是变成你的了?页面是否可以正常显示了呢? 如果你的css文件不是style.css,且不是在主题根目录下,那怎么办呢?我们可以用``来获取主题根目录的URL,如你的主题css文件是`abc.css`,那么我们可以这样写:`/abc.css`,如果是在子目录css下那就这样:`/css/abc.css`。同样加载js文件也是这样。 不过,还有几张图片的路径不对,还不能显示出来,现在我们一起用文本编辑器打开`index.php`、`archive.php`、`contact.php`、`full_width.php`、`page.php`和`single.php`,给这些图片加上正确的URL,搜索代码,将所有的:`src="images/`,批量替换成`src="/images/`。现在再刷新你的主页,看文章的缩略图是否可以正常显示。``用于输出主题目录的URL。 ### **3、添加pingback** 至于什么是pingback,你可以在搜索引擎中输入关键字:`WordPress pingback`,就可以得到你想要的答案了。如果你需要这个功能,可以在``里面添加以下代码: ### **4、更改博客名称和描述** 在`header.php`,下面两行代码用于显示博客名称和描述:

Aurelius

Our blog, keeping you up-to-date on our latest news.

上面是静态代码,现在做如下修改:

现在你的博客首页看到的就是你博客名称和描述了,并且logo也是一个链接指向你的博客首页。我们这里说说这些php代码的作用。 - `` 输出你的博客首页网址 - `` 输出你的博客名称 - `` 输出博客描述 博客名称和描述可以在WordPress管理后台 - 设置 - 常规那里更改。以后制作你自己的WordPress主题的时候,你可参照上面的说明对你的主题进行修改。 ### **5、添加订阅feed链接** 相信每个已发布的WordPress博客主题都会提供feed订阅,当然我们的主题也应该提供这样的功能。在``之前添加以下代码: ### **6、添加wp\_head** 有些插件需要在网页头部执行一些类如添加一些js或css的动作,要让这些插件能够正常的工作,也让你的主题有更好的兼容性,你应该添加wp\_head()函数。打开`header.php`,在``前面添加以下代码即可: 现在打开你的博客主页,查看源代码,``前面是不是多了以下类似代码(这些都是`wp_head()`的功劳): ### **7、添加Description 和 Keywords** 关于添加网页描述和关键字,可以查看我之前写过的文章:WordPress使用经验(一)独立的Description 和 Keywords ### **8、显示菜单栏** 目前菜单栏有Home、Blog和Contact Us几个菜单,不过这些都是静态的内容,并不是你博客上的页面。现在我们将菜单栏换成你的菜单,这里只在菜单栏中列出页面page,当然你也可以再放置分类,根据你的喜好来吧,将header.php中: 改成: 下面两篇文章介绍了WordPress菜单的制作方法,也可以参考: - WordPress制作主题导航菜单的方法(一) - WordPress制作主题导航菜单的方法(二) ### **9、刷新缓存** 在`6c04bd5ca3fcae76e30b72ad730ca86d`前面,`9c3bca370b5104690d9ef395f2c5f8d1`后面添加PHP代码,用于提高程序运行效率:`aac5cfcd9c80ae0a9200fcac4073e209` ### **总结** 好了,本次练习到此结束!现在总结一些今天讲到的比较重要的知识点: - `c974613bee707296608324a2f9bc69b1` 从当前主题文件夹中包含header.php文件 - `is_home(),is_single(),is_category()`等几个条件判断标签 - `bf591411cb1eecee999d8e00eff73f82` 输出主题文件夹中style.css文件的路径 - `7a764efa0ab7cae20290c3ae2e7b431f` 输出博客pingback网址 - `0fc0a3f621cc574c92fe12d951515ac9` 输出博客主题目录URL - `8e15115cb80d1acbe35508806bdafbee`  输出你的博客首页网址 - `dbc395af03a8e84af3b585d66d8154e4` 输出你的博客名称 - `512e8410679877c13c3741899e256d1d` 输出博客描述 - `12493c822e68bbb57c539d2976ef876e` 用于包含WordPress程序输出头部信息 - `57e4661e8da6ea5673b0f98014eea780` 用于列出博客分类页 - `c3248765daa06fe0c6c25b73e08a9431` 用于列出博客页面 到目前为止你的博客还只能看到主页,不要灰心,凡事一步一个脚印,以后教程会慢慢深入的。最后提供经过本次修改后的`Aurelius`主题文件,你可以用文本编辑器打开看看,跟你修改的文件比较比较(尤其是`header.php`),看看你改得怎么样? ![](images/2023/1212/63f426bd9d92a141.jpg) 推荐学习:《WordPress教程》 以上就是WordPress主题制作全过程(五):制作header.php的详细内容,更多请关注知企PROSAAS其它相关文章! **Categories:** WordPress ---