使用Twig 进行WordPress 开发

前言:Timber 是一个已经行之有年(测试版本在2013 年7 月就发布了)的WordPress 外挂,但是中文的社区讨论Timber 与Twig 的用户并不多,但这是我目前使用过后认为学习曲线比较缓,没有太多复杂的前置知识的工具。我希望可以有一个比较完整的介绍,让大家在制作自己的布景主题时可以有一个不错的选择。

使用Twig 进行WordPress 开发:简介

大家已经谈论了很多关于WordPress的未来发展,很多人都认为WP缺乏模板语言。这也难怪,因为其他CMS平台例如Django、Ruby on Rails、Node.js、Laravel,甚至是Drupal都有模版语言。虽然这颗星球上使用WordPress开发的网站,占据了将近30%,你也很难用有没有模版语言来判断WP的策略好坏。但是,由于代码中的模组性仍然缺失,如果能有一个模组化的方式架设网站,还是比较方便。 但是有个好消息!Twig 模板引擎和一个叫做Timber 的外挂可以帮助我们在WordPress 中编写超级干净和模块化的程式码。在本系列中,我们将讨论它的实现和与WordPress 的整合。首先我将介绍什么是Twig,以及为什么需要它,在接下来的三篇文章中,我将通过Timber 说明与WordPress 结合的不同类型的Twig 模板。

为什么使用Twig?

PHP 的确有很多优秀的模板引擎,但是Twig 确实在以下能力上超过了所有这些引擎:

丰富的功能

Twig 是功能最丰富、也是功能最强大的PHP 模板引擎之一。它支持多重继承和自动输出转译,并帮助将模板划分为几个区块(Blocks)或组件(Compentents),以维护模组化设计。不仅如此,开发人员还可以添加更多的外挂来满足任何前端需求。

快速和高效

与普通的PHP 模板相比,通过Twig 编译的模板需要的时间少了很多。编码例程得到了高度的优化,你可以节省大量的开发时间。当你计划更改基本框架时,这也很有用,因为Twig 帮助创建一个独立的模板层,可以与任何后端框架连接,无论是Laravel 还是WordPress。

对设计师和开发人员友好

Twig 适合设计师和开发人员的需求。即使你不是一个代码爱好者,也可以很容易的使用Twig,并且感觉基于组件编写模块模板是正确的。它的语法很容易理解和避免在模板文件中实现动态PHP 操作。它非常现代化,几乎可以适应所有最新的编码标准。在处理Twig 时,输出逸出的概念非常全面。 让我们从一个简单的例子开始。 在普通的PHP 中,你会得到这样的输出:
  1. <?php echo $foo ; // $foo is any random variable ?>
  2. <?php echo htmlspecialchars ( $foo , ENT_QUOTES , 'UTF-8' ) ?>
在Twig 中,我们可以把上面的程式码简化为:
  1. { { foo } }
  2. { { foo|escape } }
  3. { { foo|e } } { # shortcut to escape a variable #}
在Twig 中逸出就是这么简单。只要添加双括号,输入变数的名称,就会得到一个相对的输出。在它旁边加上| e,我们就可以开始转义了。在本系列接下来的三篇文章中,我们将对此进行更多的讨论。

安全

Twig 自己对数据进行清理和保护。它的专用沙箱模式智能地监视整个代码并过滤可能的最佳结果。这意味着用户生成的模板可以轻松、安全地实现。沙箱环境只能在全局或局部上为这样的特定模板启用:
  1. { { include ( 'post.html' , sandboxed = true ) } }
在任何语法错误的情况下,Twig 通过生成一条消息来调试你的文件,该消息包含你的文件名和带有问题代码的行号等细节。

灵活

我刚刚提到Twig 是一个现代模板引擎,这也意味着你可以扩展它的功能,因为它非常灵活。它完全支持高效的lexer 和解析器,开发人员可以通过它定义自定义标记、过滤器、函数等。

其他

除了上面提到的所有特性之外,Twig 有很好的文档记录和完整的单元测试。它的API 和模板库是完全稳定的,可以处理所有复杂的任务。也有专门的在线书籍和完整的API 文档。 Twig 是Drupal 8 的新模板语言,这是我使用这个模板引擎的主要动机。XWP 的优秀员工,尤其是韦斯顿·鲁特,正在研究一项建议,让WordPress.com 的VIP 用户可以使用Twig。

Timber:将Twig 和WordPress 结合在一起

到目前为止,整个讨论围绕着两件事展开。首先,我们应该采用模组化的方法,在设计自己的WordPress 布景主题时将模版与数据分开;其次,Twig 可以帮助我们做到这一点。但是如何把这两者结合在一起呢? 为了实现Twig 和WordPress 之间最好的整合,开发者们做出了各自的努力,其中一个大胆的尝试是由一家名为Upstatement 的网站创建的Timber。它使用了Twig 模板引擎,这使得在WordPress 中编写模组化并且干净的程式码成为可能。 Timber 与Twig 可以帮助你建立快速和模块化的WordPress 主题。这样,你就可以将HTML 代码与普通的PHP 文件分开,从而确保更持久的代码模式。保持HTML 和PHP 独立的概念使PHP 文件能够严格地专注于提供数据和逻辑,而HTML 文件(Twig 文件) 则专注于web 应用程序的视图层。 总的来说,Timber 有三个主要任务: 1.它将Twig结合到WordPress中。 2.它将呈现Twig模板。 3.它添加了一个基础WordPress数据集。 我认为他们的使命宣言说明了一切:
对于希望通过直观、一致和完全可访问的界面将HTML 翻译成高质量WordPress 主题的开发人员来说,Timber 是一个工具。
1.直观:API是围绕程序员的期望编写的,以用户为中心。 2.一致:所有的WordPress对象都可以通过像slug、ID和name这样的多态属性访问。 3.访问:没有黑盒子。所有的努力都是由开发人员获得100%的HTML。

Timber 是如何运作的呢?

对于一般的WordPress 主题,PHP 和HTML 代码的所有片段都集成在相同的PHP 模板文件中并进行修改。但是,对于Timber,我们将模板分为两个不同的档案:PHP 文件和视图/模板文件(View),即.twig 文件。 因此,第一个副档名是.php 文件,第二个是.twig。因此,如果你正在为single.php 创建模板文件,你的文件将被命名为single.php 和single.twig。 前者文件对数据进行排序,而后者是使用HTML 中的数据的模板。通过这种方式,你就能以模组化的方式在WordPress 主题中添加Actions。 让我们总结一下:
木材在PHP 和HTML (Twig) 文件中处理WordPress 主题的模板文件。这样可以将逻辑与显示分开。它为你提供了创建、样式和显示主题的新方法。

结论

Twig 有很多值得喜爱的地方。这篇文章只是介绍了使用模板引擎和WordPress 的优点。模块化代码是更好的代码,易于维护。现在是开发人员进行工作流转移的时候了,我相信Twig 可以帮助他们做到这一点。 在接下来的文章中,我将用Twig 展示模板文件的实际实现。我们将通过代码示例研究如何实现用于呈现WP 图像、注释和菜单的Twig。在那之前,如果你发现任何问题,请尽管问。

5分钟搞懂第一次做WordPress网站的流程

Hello! 我是带路姬!我是个不懂程式的设计师,我用WordPress帮几十个客户做漂亮的网站,今天来跟大家分享,如何不用写程式,也能快速的做一个自己的网站或部落格?在开始之前,首先跟你介绍一下,这里的教学都是特别针对不懂程式的新手写的,所以请放心,不会有很难的专有名词,如果真的仍然有不懂的地方,欢迎到我们WordPress不懂程式的新手社团,与同学们一起学习,看看带路姬帮你们统整的所有常见问题。下面的教学,是以文字的方式来解说流程,假如你希望能看影片,学得更详细的话,请参考「五天自学冲刺班」的内容喔!带...

日期:2020-09-16 11:58:29 浏览:489

写给WordPress二次开发的新人

既然选择可WordPress二次开发,那你应该就挺认可WP这个cms系统的,站长今天将WP开发的经验心得分享给大家。首先我们先做个铺垫,讲一下wp,先说wp的成就,世界上流量排名前一千万的网站当中有33.4%的网站是通过Wordpress建立起来的!换句话说,目前wordpress已经霸占了整个互联网上前一千万个网站当中的三分之一,并且这个数据还在不断的上升。当然你会说,咦 在国内好像感觉没有这么大的比例啊,是的,确实是没有,下面上数据:可以看出,跟wp相关联的网站全球有700多万,再看看分布在各国的数据我...

日期:2020-09-16 11:58:28 浏览:708

写给WordPress 新手:插件是什么?要怎么用?

很多初学者会问我们什么是WordPress 插件,以及如何使用WordPress 插件。插件是WordPress 生态系统最重要的部分之一,它们是WordPress 能够建构伟大网站的关键。在这篇指南中,我们将解释什么是WordPress 插件,以及我们应该如何运用他们。什么是 WordPress 插件?WordPress 插件是让你能为WordPress 网站添加新功能的应用程式。就像智慧型手机里的app 一样。目前在WordPress.org 插件目录中有超过48,000 个免费插件可用。Github ...

日期:2020-10-01 21:15:47 浏览:693

使用Twig 进行WordPress 开发

前言:Timber 是一个已经行之有年(测试版本在2013 年7 月就发布了)的WordPress 外挂,但是中文的社区讨论Timber 与Twig 的用户并不多,但这是我目前使用过后认为学习曲线比较缓,没有太多复杂的前置知识的工具。我希望可以有一个比较完整的介绍,让大家在制作自己的布景主题时可以有一个不错的选择。使用Twig 进行WordPress 开发:简介大家已经谈论了很多关于WordPress的未来发展,很多人都认为WP缺乏模板语言。这也难怪,因为其他CMS平台例如Django、Ruby on Ra...

日期:2020-10-02 21:16:41 浏览:540

如何在不伤害SEO 的情况下合并两个WordPress 网站?

最近,有一位读者询问我们该如何合并两个WordPress 网站。有时你可能会建立很多个WordPress 网站,但后来想要将它们合并在一起。WordPress 带有内建的工具,可以很容易地做到这一点。在这篇文章中,我们将向你展示如何正确合并两个WordPress 网站。为什么要合并WordPress 网站?有很多原因会需要将两个或多个WordPress 网站合并在一起。也许你希望透过结合你旧的部落格来开始新的WordPress 网站,以便你可以将所有内容放在一个位置。另一个可的原因能是你的某个部落格做得不好...

日期:2020-11-01 09:48:47 浏览:625

如何修复「与媒体库建立连线时发生错误」?写给WordPress 的初学者

如果你使用网路已有一段时间,你应该曾经看到过这个错误。有许多原因可能导致建立媒体库连线时出现错误,作为一个WordPress 的初学者,这可能非常令人头痛,尤其是当你什么都没做,但是某一天他就自己出现了的时候。我前几天在自己的网站上遇到了这个问题,而且花了20 多分钟才发现原因并解决问题。在本文中,我们将说说如何修复WordPress 中建立媒体库连接错误的办法。注意:在进行任何媒体库更改之前,请确保你已经备份你的网站。为什么会出现这个错误?简而言之,这个错误会出现,是因为WordPress连不到你的MyS...

日期:2020-10-05 21:50:02 浏览:857

server response time 太慢?谈谈如何改善WordPress 的服务器响应时间

什么是Server response time 服务器响应时间?服务器响应时间是Web 服务器响应用户的浏览器请求所花费的时间。根据Google 的Pagespeed 指标,只要响应时间超过200ms ,就算是太慢。虽然这个数字有点严苛,但是你那没耐心的客户一定更严苛… 所以我们还是来讨论一下,怎么样可以让服务器尽量快速的响应。另外一点是,无论你的WordPress 网页的优化速度如何,如果你的服务器响应时间很慢,你的网页还是会很慢才显示。如何加快服务器的响应时间大概可以分成两个方法,这两个方法各有好坏: ...

日期:2020-10-31 21:52:41 浏览:1001

什么是.htaccess 文件?给WordPress 初学者的说明与教学

什么是.htaccess 文件?.htaccess 文件是一个短小精悍的纯文字档案,用来控制网页显示方式的许多层面。像是重新定向,启用压缩,重写URL,利用浏览器快取和其他更多的事情,都可以透过添加一些Code 到这个小文件来完成。但是,即使修改或更新这个文件时出现一个小错误也会导致极端的结果(比如你的网页没有显示出来),所以在编辑时要格外小心,但也不要太害怕,我会介绍如何安全地更改通过确保您始终拥有可用的备份副本。.htaccess 这个名字代表「超文本访问」。该文件提供了一种方法来执行您的伺服器,通常在...

日期:2020-10-08 21:54:45 浏览:708

新手使用WordPress 开发的几个理由

1.说明文件齐全Wordpress作为最多人(全世界大约28%)使用的架站系统,具有最齐全的说明文件,在你遇到任何不清楚怎么操作的时候,基本上都可以透过WordPress的说明文件(以及Google)解决你的疑问。2.最多扩充功能Wordpress具有相当多的扩充功能,例如Google Analytics整合、Google Adsense整合、MailChimp整合、Facebook留言板整合、Disqus的整合等等,可以让你在最短的时间内部属需要的功能。3.社区活跃社区活跃,表示你遇到任何问题时,更可能存...

日期:2020-10-10 21:56:14 浏览:766

如何让我的WordPress 出现在搜寻结果中?

前言WordPress,一直是最方便的开源架站软体之一,安装之后便能够马上使用,这让我们可以很快速的直接进入搜索引擎吧。它的特色和功能将通过文章、页面和分类引导一个搜索引擎,帮助搜索引擎抓取你的网站,收集它需要的包含了你网站数据库的信息。WordPress 自带一些内置的搜索优化工具,包括能够使用.htaccess 制作被称为永久链接的静态网址,友情链接和Ping。也有一些第三方的外挂可用于搜索引擎优化(SEO)。然而,一旦你开始使用不同的WordPress 主题或客制化WordPress 来满足自己的需要...

日期:2020-10-12 21:58:26 浏览:707