阅读:2671回复:0
为你的WordPress主题框架创建子主题
[tr][td]之前建立的主题框架将用作所开发网站的父主题。这意味着,在每一种情况下,你都需要去创建一个子主题,并运用自己的设计以及更多的其他的函数创建一个网站,而这个网站也是唯一的。
最显而易见的方式是全身心地投入,并开始在你的子主题中创建模板文件,用来覆盖框架中的那些原文件,但由于你已经给你的框架添加了动作挂钩和过滤挂钩, 所以这未必就是最好的一种方法。 在这篇文章中,我将重点介绍你可以运用在子主题中的一些技术,从而让你充分地利用好自己的框架,并能根据需要随时改善工作流程。 我将介绍的主题如下: [*]创建初始子wordpress主题 [*]通过该框架的过滤挂钩修改代码 [*]通过该框架的行动挂钩添加代码 [*]在你的子主题中建立新的模板文件 [*]何时使用插件 开发主题框架的主要目的是为了运用DRY(切勿重复自己)原则,这也同样适用于你的子主题。 为框架创建一个或多个“初始”子主题会让你变得更有效率。子主题中包含有你需要在新项目中使用的一些核心代码。 在决定如何去创建的同时,有一些关于工作方式和建立网站的问题需要加以考虑: [*]你是否是在为同一个部门有类似需求的客户创建网站? [*]你是否是想给小客户提供低成本的基于模板的网站? [*]你是否有能为大多数新项目服务的具体模板文件? [*]你的某些网站是否需要具有一些独特的功能(例如,我使用的两个初始子主题,一个有评论功能,另一个就没有)? [*]是否有适用于大多数项目的样式?你能否使用面向对象的样式或一个CSS预处理器来处理大多数项目? [*]是否有适用于大多数(或占有一定显著比例的)新项目的代码库或者其他资源? [*]是否有两个或三个主要范畴,你可以将一些项目放置于其下,而每个范畴都涉及到类似的开发工作? 注意:如果你要为每一个新项目添加一些代码的话,也许你只是想将它添加到你的框架之中,而不是子主题内,将来如果另有需要的话,使用一个挂钩你就可以将其覆盖。 即使你对以上问题的回答都是否定的,用空样式表和函数文件创建一个非常基本的初始主题,并在样式表中添加WordPress相关说明,来访问框架父主题,也是很有必要的: [*]/* [*] Theme Name: My Theme Framework Child [*] Theme URI: [*] Description: Starter Child Theme [*] Author: Rachel McCollin [*] Author URI: http://rachelmccollin.co.uk [*] Template: wptutsplus-theme-framework-part6 [*] Version: 1.0.0 [*] Tags: [*] Text Domain: tutsplus [*]*/ [*] [*] [*]@import url("../wptutsplus-theme-framework-part6/style.css"); 以上必填的字段是Theme Name(主题名称)和 Template(模板),其余的都是可填可不填。要确保Template使用的是框架主题的地址,而不是它的命名。这也将有助于完成与主题相关的其他字段。 如果你要加载架构样式表单的话,那么该@import声明也很重要。只要你把这个声明放在任何其他的CSS上,它就会在子主题样式表单的任何样式之前加载父主题样式表单,这意味着你可以在子主题框架内根据需要添加或覆盖样式。 您可能还需要使用你在子主题中最常用到的函数建立一个初始functions.php文件。然后,您可以选择将这些函数全部删除和/或根据具体项目将它们添加到主题中。 通过该框架的过滤挂钩修改代码 在给你的子主题添加样式之外,你很可能还想要更改由框架输出的代码。最轻巧的方式是通过过滤挂钩来实现,所以首先要确认你能否使用其中任何一个挂钩。 为新代码创建一个函数,再附上一个过滤挂钩,这比建立一个全新的模板文件更加有效;但是,如果你需要使用相同的过滤挂钩不断反复这样做时,你可能要考虑一下改变钩连一个动作挂钩的过滤挂钩,并为由该行动挂钩激活的每一个项目重写一个新函数。 为了更有效率,你可以创建一整套相关函数,放置在不同初始主题的函数文件中,或者使用一些函数创建一个插件,这些函数可以根据需要来激活。我将在之后的课程中更加详细地介绍到这个插件。 我在前面的课程中已经介绍过创建过滤挂钩的流程。简单说来,就是使用add_filter()函数给一个过滤挂钩附加一个函数。例如,在修改网站版权标记的链接和名称时,我创建了两个函数,如下所示: [*]function wptp_amend_colophon_name() { [*] [*] $name = 'Rachel McCollin'; [*] return $name; [*] [*]} [*]add_filter( 'wptp_colophon_name', 'wptp_amend_colophon_name' ); [*] [*]function wptp_amend_colophon_link() { [*] [*] $link = 'http://rachelmccollin.co.uk'; [*] return $link; [*] [*]} [*]add_filter( 'wptp_colophon_link', 'wptp_amend_colophon_link' ); 主题框架中的两个过滤挂钩分别是:wptp_colophon_name和wptp_colophon_link,它们都可以改变输出内容。 通过该框架的动作挂钩添加代码 你可以使用主题框架中的动作挂钩在网站的各个地方插入内容。 如果你是一直跟着本系列教程使用代码文件的,你目前就会有七个行动挂钩: [*]在网页标题之前 [*]在网页标题之中 [*]在网页内容之前 [*]在网页内容之后 [*]在网页侧边栏中 [*]在网页页脚中 [*]在网页页脚后 要做到这一点,就得在你的子主题中建立一个functions.php文件并添加以下内容: <div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><ol><li class="li1">function wptp_cta() {?><li class="li1"> <li class="li1"> <li class="li1"> Email us on mail@example.com <li class="li1"> <li class="li1"> <li class="li1"><span class="kw2"><li class="li1"> <li class="li1"> Enjoyed this? Try reading more! <li class="li1"> <li class="li1"> <span class="kw2"> |
|