阅读:3613回复:0
wordpress教程:主题框架如何添加过滤挂钩
[tr][td]到目前为止,你已经为你的主体框架添加了动作挂钩(action hooks),你已经编写了一些函数,它们由这些挂钩激活。下一步是添加一些过滤挂钩,从而能够带给你更大的灵活性。
简述动作挂钩和过滤挂钩 在开始之前,有必要对动作挂钩和过滤挂钩之间的差异做一个简要的概述: [*]动作挂钩会在代码的特定地点被触发。动作挂钩本身并不包含任何可执行代码,但是会在代码中提供一个地点,由相关函数在这个地点实现你想完成的事情,而这些函数又是由这些动作挂钩激活的。 [*]过滤挂钩使得改变已经写入主题中的代码成为可能。过滤挂钩不会为空,而是包裹在一些现有的代码之中,这样你就可以使用附加到挂钩上的函数来修改或覆盖它。 如何创建和使用一个过滤挂钩 然后使用add_filter() 函数访问该过滤挂钩,如下所示: [*] 你添加到这个函数中的内容将代替框架中的过滤性代码,这里也就是你更改或重新覆盖原有代码的位置。 [*] 你需要做的是 跟随本教程,你需要: [*]安装一个WordPress开发环境 [*]一个代码编辑器 [*]来自前期教程的代码,前提是你使用的是我的wordpress模板框架中的代码 在这一课,我会给主题框架添加三个过滤挂钩: [*]在网页页眉的过滤挂钩中,我会附上该网站的标题和说明。 [*]在网页页脚中,我将给版权标记添加一个过滤挂钩,这我们上节课就已经添加过了。 添加一个过滤挂钩到网站标题和说明 从网站标题和说明开始。打开你的主题header.php文件,找到下列代码: [*] [*] [*] [*] " title="" rel="home"> [*] [*] [*] 与其只编写一个过滤挂钩,倒不如分别给每一个标题和每一个说明都添加一个过滤挂钩,这样会更好,因为你可以修改或者改变其中任意一个在输出内容,或者两个都行。 每一种情况下,都要将bloginfo()函数替换成get_bloginfo()函数,在apply_filters()函数之前添加echo。我们就从网站标题开始。在元素h1中编辑代码,如下所示: [*] [*] " title="" rel="home"> [*] [*] [*] 正如你所看到的,我已经先后两次添加了apply_filters()函数——第一次是为了链接的标题属性,之后是为了显示的文本。新代码如下: [*] 这里建立了一个名为wptutsplus_sitetitle的挂钩,然后将它应用到get_bloginfo( 'name') 函数,再重新输出。 标题说明也是如此,但会简单一点,因为它没有链接。编辑h2元素如下所示: [*] [*] [*] 这不会影响 h2元素的输出内容,但是会给你一个过滤挂钩,之后你可以用它来改变 h2元素。 给版权标记添加一个过滤挂钩 下面,我要给版权标记添加一个过滤挂钩,这个挂钩在我的functions.php文件中的一个函数里。它能让我的框架用户修改或者覆盖版权标记的内容。 首先打开你的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_colophon() { ?><li class="li1"> <li class="li1"> <li class="li1"> © "> 2014<li class="li1"> <li class="li1"> <li class="li1"> <li class="li1"> <li class="li1"> WordPress.<li class="li1"> <li class="li1"> <li class="li1"> <li class="li1"><span class="kw2"><li class="li1"> <li class="li1"> <li class="li1"> © |
|