你可以嘗試用文本編輯器打開從WordPress主題制作全過程(三):HTML靜態模板制作下載到的 .html 文件,不知道你有沒有發現他們頭部的代碼都非常的相似呢?其實我們可以提取這部分相似的代碼,放到一個單獨的文件header.php中,各個頁面想用這部分代碼的時候再用php的include包含進去,省的每個頁面里面都要寫這部分代碼,更改起來也可以達到一改全改的目的。
再次提醒:如果你不打算動手編寫代碼,這個系列教程就別看了,對你無益!
接著我們上次創建的主題目錄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.php、archive.php、contact.php、full_width.php、page.php和single.php,刪掉以上類似代碼,改成:
~~~
<?php get_header(); ?>
~~~
好,現在打開你的測試博客主頁,看看我們制作的主題是否還可以正常工作,答案是可以的,跟原來幾乎沒什么兩樣,但還是一片混亂。get_header()就相當于將header.php中的代碼拷貝到當前的php文件。接下來,我們將仔細探討header.php中的動態內容。header.php將會被所有的模板頁面(主頁、分類頁、頁面、標簽頁等)所包含,所以header.php中代碼應該是動態,適合不同頁面的,所以這里面需要用到PHP代碼,而不是單純的HTML。下面讓我們一起來修改header.php:
**1、更改<title>**
我們都知道不同頁面的title都是不一樣,而且title的設置還會直接影響到SEO的效果,所以這里應該謹慎設置。下面提供一種SEO優化的title寫法,將<title>Aurelius | Blog</title>改成:
~~~
<title><?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);
} ?></title>
~~~
以上添加的php代碼運用了條件判斷,針對不同的頁面采用不同title,這里解釋一下這幾個條件標簽。
* is_home():當前頁面為主頁時返回true
* is_category():當前頁面為分類頁時返回true
* is_single():當前頁面為單文章頁時返回true
* is_page():當前頁面為單頁面時返回true
* 更詳細的內容參閱WordPress文檔:條件標簽
到目前為止,可能你對這些條件判斷標簽還沒有深入的認識,也搞不懂到底是用了這些標簽會對主題造成怎樣的影響的,隨著我們教程的進一步深入,你會慢慢理解的。如果你不喜歡上面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('stylesheet_url'); ?>" type="text/css" media="screen" />
`
~~~
bloginfo('stylesheet_url')輸出的是你的主題css文件絕對網址,如http://localhost/wp/wp-content/themes/Aurelius/style.css,WordPress程序會自動識別你的WordPress安裝地址,當前啟用的主題,自動輸出這個style.css鏈接。現在你可以試著更改一下,然后刷新一下你的博客首頁,查看網頁源代碼,style.css的鏈接是不是變成你的了?頁面是否可以正常顯示了呢?
~~~
如果你的css文件不是style.css,且不是在主題根目錄下,那怎么辦呢?我們可以用<?php bloginfo('template_url'); ?>來獲取主題根目錄的URL,如你的主題css文件是abc.css,那么我們可以這樣寫:<?php bloginfo('template_url'); ?>/abc.css,如果是在子目錄css下那就這樣:<?php bloginfo('template_url'); ?>/css/abc.css。同樣加載js文件也是這樣。
不過,還有幾張圖片的路徑不對,還不能顯示出來,現在我們一起用文本編輯器打開index.php、archive.php、contact.php、full_width.php、page.php和single.php,給這些圖片加上正確的URL,搜索代碼,將所有的:src="images/,批量替換成src="<?php bloginfo('template_url'); ?>/images/。現在再刷新你的主頁,看文章的縮略圖是否可以正常顯示。<?php bloginfo('template_url'); ?>用于輸出主題目錄的URL。
**3、添加pingback**
至于什么是pingback,你可以在搜索引擎中輸入關鍵字:WordPress pingback,就可以得到你想要的答案了。如果你需要這個功能,可以在<head>里面添加以下代碼:
`<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />`
**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('home'); ?>/"><?php bloginfo('name'); ?></a></h1>
<h2 class="grid_12 caption clearfix"><?php bloginfo('description'); ?></h2>
~~~
現在你的博客首頁看到的就是你博客名稱和描述了,并且logo也是一個鏈接指向你的博客首頁。我們這里說說這些php代碼的作用。
* <?php echo get_option('home'); ?> 輸出你的博客首頁網址
* <?php bloginfo('name'); ?> 輸出你的博客名稱
* <?php bloginfo('description'); ?> 輸出博客描述
博客名稱和描述可以在WordPress管理后臺 – 設置 – 常規那里更改。以后制作你自己的WordPress主題的時候,你可參照上面的說明對你的主題進行修改。
**5、添加訂閱feed鏈接**
相信每個已發布的WordPress博客主題都會提供feed訂閱,當然我們的主題也應該提供這樣的功能。在</head>之前添加以下代碼:
~~~
<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - 所有文章" href="<?php echo get_bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - 所有評論" href="<?php bloginfo('comments_rss2_url'); ?>" />
~~~
**6、添加wp_head**
有些插件需要在網頁頭部執行一些類如添加一些js或css的動作,要讓這些插件能夠正常的工作,也讓你的主題有更好的兼容性,你應該添加wp_head()函數。打開header.php,在</head>前面添加以下代碼即可:
`<?php wp_head(); ?>`
現在打開你的博客主頁,查看源代碼,</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='index' title='露兜實驗室' href='http://ludou.co.tv' />
<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('depth=1&title_li=0&sort_column=menu_order'); ?>
<li <?php if (is_home()) { echo 'class="current"';} ?>><a title="<?php bloginfo('name'); ?>" href="<?php echo get_option('home'); ?>/">主頁</a></li>
</ul>
~~~
具體如何在菜單欄顯示分類,你可以看這篇文章,有什么問題再給我留言:WordPress 分類做導航欄,并高亮顯示
- 模板制作
- wp的模板文件系統
- wp頭部代碼示例
- wp模板主體代碼
- WordPress各種標簽調用集合
- wordpress模板的各種調用
- wp模板里面的各種判斷
- wordpress非插件同步twitte
- 功能與擴展
- 獲取文章評論數及人數
- 獲取assets路徑
- 函數參數詳解
- wp_nav_nemu
- WordPress主題制作全過程
- 1、模板主體文件構成
- 2、HTML靜態模板制作
- 3、小試牛刀
- 4、制作header.php
- 5、制作footer.php
- 6、制作sidebar.php
- 7、制作index.php
- 8、制作sigle.php
- 9、制作comments.php
- 10、制作page.php
- 小知識
- 模板獲取js和css
- woocommerce
- woocommerce模板文件說明
- wp二次開發快速指南
- wp文件系統解析
- wordpress開發api之鉤子大全
- 在典型請求中運行的動作鉤子
- 日志、頁面、附件以及類別相關的動作鉤子函數
- 評論、Ping以及引用通告相關動作鉤子函數
- 反向鏈接鉤子
- Feed動作鉤子函數
- 模板動作鉤子
- 管理界面的相關動作函數
- 高級動作函數
- 常用函數之add_action
- 插件開發
- 函數大全
- 問題合集
- 獲取wordpress當前文件的模板文件
- 禁用wordpress gravatar使用本地頭像提高網頁打開速度
- woocommerce問題
- 關于cnzz的問題
- 關于wp搬家以后調用數據顯示為問號
- 未解決的問題
- form_control的問題
- 關于流程與要求的定義與補充
- php開發組對于前端提交文件的要求