WordPress主題製作全過程(五):製作header.php

青灯夜游
發布: 2023-02-23 19:46:16
轉載
1891 人瀏覽過

前面為大家介紹了《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中的所有程式碼了(當然不同主題的頭部程式碼都是不一樣,在你實際的專案中可以自定決定):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Aurelius | Blog</title>
<!-- Stylesheets -->
<link rel="stylesheet" href="./style.css" type="text/css" media="screen" />
</head>
<body>
<div id="wrapper" class="container_12 clearfix">
	<!-- Text Logo -->
	<h1 id="logo" class="grid_4">Aurelius</h1>
	<!-- Navigation Menu -->
	<ul id="navigation" class="grid_8">
		<li><a href="contact.html"><span class="meta">Get in touch</span><br />
			Contact Us</a></li>
		<li><a href="blog.html" class="current"><span class="meta">Latest news</span><br />
			Blog</a></li>
		<li><a href="index.html"><span class="meta">Homepage</span><br />
			Home</a></li>
	</ul>
	<div class="hr grid_12 clearfix"> </div>
	<!-- Caption Line -->
	<h2 class="grid_12 caption clearfix">Our <span>blog</span>, keeping you up-to-date on our latest news.</h2>
	<div class="hr grid_12 clearfix"> </div>
登入後複製

再用文字編輯器開啟index.phparchive.phpcontact.phpfull_width.phppage.phpsingle.php

#################################,刪除以上類似程式碼,改成:######
&lt;?php get_header(); ?&gt;
登入後複製
######好,現在打開你的測試部落格主頁,看看我們製作的主題是否還可以正常工作,答案是可以的,跟原來幾乎沒什麼兩樣,但還是一片混亂。 ###get_header()###就相當於將###header.php###中的程式碼拷貝到目前的php檔案。接下來,我們將仔細探討###header.php###中的動態內容。 ###header.php###將會被所有的範本頁面(首頁、分類頁、頁面、標籤頁等)所包含,所以###header.php###中程式碼應該是動態,適合不同頁面的,所以這裡面需要用到PHP程式碼,而不是單純的HTML。下面讓我們一起來修改###header.php###:#########1、更改#########我們都知道不同頁面的title都是不一樣,而且title的設定還會直接影響SEO的效果,所以這裡應該要謹慎設定。以下提供一種SEO優化的title寫法,將###<title>Aurelius | Blog###改成:###
<title><?php if ( is_home() ) {
		bloginfo(&#39;name&#39;); echo " - "; bloginfo(&#39;description&#39;);
	} elseif ( is_category() ) {
		single_cat_title(); echo " - "; bloginfo(&#39;name&#39;);
	} elseif (is_single() || is_page() ) {
		single_post_title();
	} elseif (is_search() ) {
		echo "搜索结果"; echo " - "; bloginfo(&#39;name&#39;);
	} elseif (is_404() ) {
		echo &#39;页面未找到!&#39;;
	} else {
		wp_title(&#39;&#39;,true);
	} ?></title>
登入後複製
###以上新增的php程式碼運用了條件判斷,針對不同的頁面採用不同title,這裡解釋這幾個條件標籤。 ############is_home()###:目前頁面為首頁時傳回true#########is_category()###:目前頁面為分類頁時傳回true #########is_single()###:當前頁面為單一文章頁時傳回true#########is_page()###:目前頁面為單一頁面時傳回true# ########到目前為止,可能你對這些條件判斷標籤還沒有深入的認識,也搞不懂到底是用了這些標籤會對主題造成怎樣的影響的,隨著我們教程的進一步深入,你會慢慢理解的。如果你不喜歡上面title的寫法,可以自行上網搜尋相關程式碼:###WordPress SEO title############2、更改樣式表style.css路徑######## ##在此之前你看到的首頁都是混亂的,原因是還沒載入css樣式。現在我們一起把樣式加上去。你可以在###header.php###中找到這段程式碼:######
<link rel="stylesheet" href="./style.css" type="text/css" media="screen" />
登入後複製
#######聰明的你可能問:###wp-content\themes\Aurelius###目錄下不是已經有一個###style.css### 嗎?那為什麼 ###header.php### 沒有載入css呢?結果你是可以看到的,頁面一篇混亂,可以確定確實沒有載入到css。因為這是WordPress的主題,是要被WordPress的主程式調用,經過層層解析才能把你的部落格顯示出來,而不是簡簡單單的html靜態網頁檔。正確的改法:######
<link rel="stylesheet" href="<?php bloginfo(&#39;stylesheet_url&#39;); ?>" type="text/css" media="screen" />
登入後複製
###

bloginfo(&#39;stylesheet_url&#39;)输出的是你的主题css文件绝对网址,如http://localhost/wp/wp-content/themes/Aurelius/style.css,WordPress程序会自动识别你的WordPress安装地址,当前启用的主题,自动输出这个style.css链接。现在你可以试着更改一下,然后刷新一下你的博客首页,查看网页源代码,style.css的链接是不是变成你的了?页面是否可以正常显示了呢?

如果你的css文件不是style.css,且不是在主题根目录下,那怎么办呢?我们可以用<?php bloginfo(&#39;template_url&#39;); ?>来获取主题根目录的URL,如你的主题css文件是abc.css,那么我们可以这样写:<?php bloginfo(&#39;template_url&#39;); ?>/abc.css,如果是在子目录css下那就这样:<?php bloginfo(&#39;template_url&#39;); ?>/css/abc.css。同样加载js文件也是这样。

不过,还有几张图片的路径不对,还不能显示出来,现在我们一起用文本编辑器打开index.phparchive.phpcontact.phpfull_width.phppage.phpsingle.php,给这些图片加上正确的URL,搜索代码,将所有的:src="images/,批量替换成src="<?php bloginfo(&#39;template_url&#39;); ?>/images/。现在再刷新你的主页,看文章的缩略图是否可以正常显示。<?php bloginfo(&#39;template_url&#39;); ?>用于输出主题目录的URL。

3、添加pingback

至于什么是pingback,你可以在搜索引擎中输入关键字:WordPress pingback,就可以得到你想要的答案了。如果你需要这个功能,可以在<head>里面添加以下代码:

<link rel="pingback" href="<?php bloginfo(&#39;pingback_url&#39;); ?>" />
登入後複製

4、更改博客名称和描述

header.php,下面两行代码用于显示博客名称和描述:

<h1 id="logo" class="grid_4">Aurelius</h1>
<h2 class="grid_12 caption clearfix">Our <span>blog</span>, keeping you up-to-date on our latest news.</h2>
登入後複製

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

<h1 id="logo" class="grid_4"><a href="<?php echo get_option(&#39;home&#39;); ?>/"><?php bloginfo(&#39;name&#39;); ?></a></h1>
<h2 class="grid_12 caption clearfix"><?php bloginfo(&#39;description&#39;); ?></h2>
登入後複製

现在你的博客首页看到的就是你博客名称和描述了,并且logo也是一个链接指向你的博客首页。我们这里说说这些php代码的作用。

  • <?php echo get_option(&#39;home&#39;); ?> 输出你的博客首页网址
  • <?php bloginfo(&#39;name&#39;); ?> 输出你的博客名称
  • <?php bloginfo(&#39;description&#39;); ?> 输出博客描述

博客名称和描述可以在WordPress管理后台 - 设置 - 常规那里更改。以后制作你自己的WordPress主题的时候,你可参照上面的说明对你的主题进行修改。

5、添加订阅feed链接

相信每个已发布的WordPress博客主题都会提供feed订阅,当然我们的主题也应该提供这样的功能。在</head>之前添加以下代码:

<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - 所有文章" href="<?php echo get_bloginfo(&#39;rss2_url&#39;); ?>" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - 所有评论" href="<?php bloginfo(&#39;comments_rss2_url&#39;); ?>" />
登入後複製

6、添加wp_head

有些插件需要在网页头部执行一些类如添加一些js或css的动作,要让这些插件能够正常的工作,也让你的主题有更好的兼容性,你应该添加wp_head()函数。打开header.php,在</head>前面添加以下代码即可:

&lt;?php wp_head(); ?&gt;
登入後複製

现在打开你的博客主页,查看源代码,</head>前面是不是多了以下类似代码(这些都是wp_head()的功劳):

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://ludou.co.tv/blog/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://ludou.co.tv/blog/wp-includes/wlwmanifest.xml" /> 
<link rel=&#39;index&#39;  href=&#39;http://ludou.co.tv&#39; />
<meta name="generator" content="WordPress 2.9.2" />
登入後複製

7、添加Description 和 Keywords

关于添加网页描述和关键字,可以查看我之前写过的文章:WordPress使用经验(一)独立的Description 和 Keywords

8、显示菜单栏

目前菜单栏有Home、Blog和Contact Us几个菜单,不过这些都是静态的内容,并不是你博客上的页面。现在我们将菜单栏换成你的菜单,这里只在菜单栏中列出页面page,当然你也可以再放置分类,根据你的喜好来吧,将header.php中:

<ul id="navigation" class="grid_8">
	<li><a href="contact.html"><span class="meta">Get in touch</span><br />
		Contact Us</a></li>
	<li><a href="blog.html" class="current"><span class="meta">Latest news</span><br />
		Blog</a></li>
	<li><a href="index.html"><span class="meta">Homepage</span><br />
		Home</a></li>
</ul>
登入後複製

改成:

<ul id="navigation" class="grid_8">
	<?php wp_list_pages(&#39;depth=1&title_li=0&sort_column=menu_order&#39;); ?>
	<li <?php if (is_home()) { echo &#39;class="current"&#39;;} ?>><a title="<?php bloginfo(&#39;name&#39;); ?>"  href="<?php echo get_option(&#39;home&#39;); ?>/">主页</a></li>
</ul>
登入後複製

下面兩篇文章介紹了WordPress選單的製作方法,也可以參考:

9、刷新快取

<body>前面,</head>後面加入PHP程式碼,用於提高程式運作效率:<?php flush(); ?>

總結

好了,本次練習到此結束!現在總結一些今天講到的比較重要的知識點:

  • &lt;?php get_header(); ?&gt; 從目前主題資料夾中包含header.php文件
  • is_home(),is_single(),is_category()等幾個條件判斷標籤
  • <?php bloginfo('stylesheet_url'); ? > 輸出主題資料夾中style.css檔案的路徑
  • <?php bloginfo('pingback_url'); ?> 輸出部落格pingback網址
  • <?php bloginfo('template_url'); ?> 輸出部落格主題目錄URL
  • <?php echo get_option('home'); ?&gt ;  輸出你的部落格首頁網址
  • <?php bloginfo('name'); ?> 輸出你的部落格名稱
  • # <?php bloginfo('description'); ?> 輸出部落格描述
  • &lt;?php wp_head(); ?&gt; 用於包含WordPress程式輸出頭部資訊
  • <?php wp_list_categories(); ?> 用於列出部落格分類頁
  • <?php wp_list_pages(); ? > 用來列出部落格頁面

到目前為止你的部落格還只能看到主頁,不要灰心,凡事一步一腳印,以後教學會慢慢深入的。最後提供經過本次修改後的Aurelius主題文件,你可以用文字編輯器打開看看,跟你修改的文件比較比較(尤其是header.php),看看你改得怎麼樣?

WordPress主題製作全過程(五):製作header.php

推薦學習:《WordPress教學

以上是WordPress主題製作全過程(五):製作header.php的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:ludou.org
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板