HTML5 引入了一系列出色的新功能和簡單的選項。很快它將得到當今使用的大多數瀏覽器的全面支援。最終每個人都必須將 WordPress 主題從 XHTML 轉換為 HTML5。在 Google 的熊貓更新之後,您的網站需要更清晰、更易於閱讀的程式碼才能在 Google 上獲得更好的排名。我將教您如何將主題從 XHTML 轉換為 HTML5。我們還將照顧禁用 JavaScript 的 2% 的網路使用者(為了向後相容)。
在本教學中,我們將專注於將 WordPress 主題從 XHTML 轉換為 HTML5。我們將逐步透過下面列出的文件來了解更改(這些文件位於您的主題資料夾中,即wp-content/themes/yourtheme/here!)
讓我們來看看我們將要建立的基本 HTML5 佈局。 HTML5 不僅僅是程式碼開頭的文件類型。幾個新引入的元素幫助我們以更少的標記以有效的方式設計樣式和編碼(這就是 HTML5 更好的原因之一)。
<!DOCTYPE html> <html lang="en"> <head> <title>TITLE | Slogan!</title> </head> <body> <nav role="navigation"></nav> <!--Ending header.php--> <!--Begin index.php--> <section id="content"> <article role="main"> <h1>Title of the Article</h1> <time datetime="YYYY-MM-DD"></time> <p>Some lorem ispum text of your post goes here.</p> <p>The article's text ends.</p> </article> <aside role="sidebar"> <h2>Some Widget in The Sidebar</h2> </aside> </section> <!--Ending index.php--> <!--begin footer.php--> <footer role="foottext"> <small>Some Copyright info</small> </footer> </body> </html>
現在我們只需要知道header
、footer
、nav
、section
和article
的新HTML5標籤放在哪裡即可。與 div
結構化 XHTML 相比,新引入的標籤的名稱是不言自明的。
現在我將向您展示XHTML WordPress主題的header.php中常用的程式碼。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>My Blog</title> <?php wp_head(); ?> </head> <body> <!-- Header --> <div class="header"> <div class="container"> <h1><a href="<?php bloginfo('url');?>">My Blog is Working Great.</a></h1> </div><!-- End Container --> </div><!-- End Header --> <!-- Navigation Bar Starts --> <div class="navbar"> <div class="container"> <ul class="grid nav_bar"> <?php wp_list_categories('navs_li='); ?> </ul> </div> </div> <!-- Navigation Bar Ends --> <div class="container">有人必須問我們為什麼要做這一切?答案很簡單,就是 HTML5 的語意標記。它減少了標記,使其非常易於理解和管理。
閱讀程式碼,然後按照以下說明將主題的 header.php 轉換為 HTML5。
<!doctype html> <html> <head> <title>My Blog</title> <?php wp_head(); ?> </head> <body> <!-- Header --> <header> <div class="container"> <h1 class="grid"><a href="<?php bloginfo('url');?>">My Blog is Working Great.</a></h1> </div> </header> <!-- End Header --> <!-- Navigation Bar Starts--> <nav> <div class="navbar"> <ul class="grid nav_bar"> <?php wp_list_categories('title_li='); ?> </ul> </div> </nav> <!-- Navigation Bar Ends --> <section class="container">如您所看到的,轉換後的程式碼與 XHTML 程式碼非常相似。讓我們討論一下這些變化。
aba7b36f87decd50b18c7e3e3c150106
1aa9e5d373740b65a0cc8f0a02150c53
c787b9a589a3ece771e842a6176cf8e9 – 我們用一個新的語意標籤取代了導覽列的
div
注意: 有些人在標題中包含
section 標記。關於這一點有很多爭論。我個人反對在標頭中包含
section 標籤,因為它會破壞 HTML5 的美感。當然,您可以在那裡使用舊的
div 。
將 WordPress 主題轉換為 HTML5 時,標頭中包含的腳本和樣式表確實非常簡單。在 HTML5 中,我們只使用
3f1c4e4b6b16bbbd69b2ee476dc4f83a 和
2cdf5bf648cf2f33323966d7f58a7f3f 標籤。因此,刪除
type="text/javascript" - 所有瀏覽器都會將
3f1c4e4b6b16bbbd69b2ee476dc4f83a 標籤視為 JavaScript,除非您明確寫入其類型。同樣,從樣式表的
2cdf5bf648cf2f33323966d7f58a7f3f 標記中刪除
type="text/css"
包含 HTML shiv 以支援舊版瀏覽器。這是一個簡單的 JavaScript 檔案。 shiv 的一些範例是 Remy Sharp 的 HTML5 腳本或 Modernizr 腳本。讓我們使用 Modernizr。
我們需要將腳本從我們的functions.php 檔案中排入佇列,如下所示:
function html5_scripts() { // Register the Modernizr script wp_register_script( 'modernizr', get_template_directory_uri() . '/js/Modernizr-1.6.min.js' ); // Enqueue Modernizr wp_enqueue_script( 'modernizr' ); } add_action( 'wp_enqueue_scripts', 'html5_scripts', 1 );提示:
將連續出現的標題標籤放入
d8eccd9ed644b68a6460a2bb84548c82
#注意: 此腳本需要放置在
81af6cbca3c49e7cf9a1d222fe5e2407 標籤,這就是為什麼我們給
add_action 優先權為1。
常見的 XHTML index.php 由下列標籤組成。我將逐一轉換,解釋轉換後的整個過程。
注意: 我不會在此處添加整個程式碼,因為它會無緣無故地使帖子變得更長。
###<div id="container"> <div id="content"> <div id="entries"> <div id="post">...</div> </div><!--Ending Entries--> <?php get_sidebar(); ?> </div><!--Ending content--> </div><!--Ending container--> <?php get_footer(); ?>
<div id="container"> <div id="content"> <section id="entries"> <article id="post">...</article> </section><!--end entries--> <?php get_sidebar(); ?> </div><!--end content--> </div><!--end wrap--> <?php get_footer(); ?>
在看我们所做的更改之前,我们必须知道HTML5为我们提供了三个基本的布局建模标签:Section
、article
和aside
。 Section
将替换条目的 div,article
将替换帖子的 div,稍后 aside
将用于我们的侧边栏。
2f8332c8dcfd5c7dec030a070bf652c3
– HTML5 有一个名为 section
的布局标签,用于分隔其中使用的代码块23c3de37f2f9ebcb477c4a90aac6fffd
– 帖子部分的语义标签,类似于 section
15221ee8cba27fc1d7a26c47a001eb9b
– 帖子图像的语义标记,用于将其放在一边和侧边栏面包屑和页面导航
– 如果我们的主题有面包屑,那么它们将在 div
中使用,例如 26af29c551fce3a276c8c520c5161cd1...16b28748ea4df4d9c2150843fecfba68
,对于页面导航,我们将使用 a8d116a310d40d10e32a84202dd15709
注意: 我粘贴了一个通用的index.php,如下所示,下面是一些转换为 HTML5 的完整代码。
<section class="entries"> <?php if (have_posts()) : while (have_posts()) : the_post(); <article class="post" id="post-<?php the_ID(); ?>"> <aside class="post_image"> <?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } else { ?> <a href="<?php the_permalink() ?>"><img src="<?php bloginfo('template_directory');?>/images/noImage.gif" title="<?php the_title(); ?>" /></a> <?php }?> </aside> <section class="post_content"> <h1><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1> <p><?php echo get_the_excerpt(); ?></p> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>" class="read_more ">Read More</a> </section> <section class="meta"> <p> <?php the_category(',') ?></p> <p><?php the_tags(""); ?></p> </section> </article> <?php endwhile; else: ?> <p> <?php _e('Sorry, no posts matched your criteria.'); ?> </p> <?php endif; ?> <?php posts_nav_link(' ⏼ ', __('« Newer Posts'), __('Older Posts »')); ?> </section>
我们将在侧边栏中使用 15221ee8cba27fc1d7a26c47a001eb9b
而不是 div
,例如:
<div id="sidebar">...</div>
使用15221ee8cba27fc1d7a26c47a001eb9b
后变成如下。
<aside id="sidebar">...</aside<
这很简单!
我们将在 footer.php 中使用 c37f8231a37e88427e62669260f0074d
语义标签而不是简单的 div
,例如:
<div id="footer"> <div id="foot_widgets">...</div> <div id="copyright">...</div> </div> <?php wp_footer(); ?> </body> </html>
<footer id="footer"> <section id="foot_widgets">...</section> <section id="foot_widgets">...</section> <section id="foot_widgets">...</section> <div id="copyright">...</div> </footer> <?php wp_footer(); ?> </body> </html>
single.php 没有什么特别的变化,所以我只是粘贴更改后的代码,这可能对一些初学者有帮助。我在其中使用了 section
和 article
标签。如果您愿意,您还可以使用 46dd80ba616c57a652514755c74c4211
标签。
<?php get_header(); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="container"> <div class="breadcrumbs"><?php the_breadcrumb(''); ?></div> <div class="content"> <h1><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1> <div id="entry-content-single"> <?php the_content('<p >Read More</p>'); ?> </div> <div class="meta"> Posted by: <?php the_author() ?> <?php edit_post_link(__('Edit This')); ?> <p><?php the_tags(""); ?></p> </div> <div class="clearfix"></div> </div> <!-- End of post --> </div></div> <?php get_footer(); ?>
<?php get_header(); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <section class="content"> <div class="breadcrumbs"><?php the_breadcrumb(''); ?></div> <article class="box"> <h1><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1> <section id="entry-content-single"> <?php the_content('<p>Read More</p>'); ?> </section> <section class="meta"> Posted by: <?php the_author() ?> <?php edit_post_link(__('Edit This')); ?> <p><?php the_tags(""); ?></p> </section> <div class="clearfix"></div> </article> <!-- end post --> </section></div> <?php get_footer(); ?>
注意: 关于SEO,有些人在帖子标题之前使用 3534bfbbdb2128f14bde5b82a4f4d904
,这也是一个很好的做法。
最终我们关心的是向后兼容性问题。出于对旧版浏览器的安全考虑,HTML5 元素应使用 display: block
样式显示为块。只需将以下代码放在 style.css 的顶部即可:
header, nav, section, article, aside, figure, footer { display: block; }
如果您使用嵌入到模板文件中的音频或视频,则必须使用 HTML5 音频和视频元素。可以在下面的备忘单中查看更多标签。每当您添加一些新功能时,请研究一下如何使用其语义标签将其添加到 HTML5 中。
您要使用 HTML5 吗?您是否已更改为 HTML5?这些更改是否会影响您的 SEO 排名?请在下面的评论中告诉我们!
以上是將您的 WordPress 主題轉換為 HTML5的詳細內容。更多資訊請關注PHP中文網其他相關文章!