专栏首页一丘一壑Genesis框架从入门到精通(10): 样式函数

Genesis框架从入门到精通(10): 样式函数

原文

Genesis Explained Formatting Functions

In the previous post of the Genesis Explained series I touched on a few functions after explaining very quickly what was in each of the files in the functions folder…

Designs By Nick the Geek

译文

Genesis Explained系列的上一篇文章中,我们快速的了解了函数文件夹中每个文件的内容,简单介绍了一些函数。我们以后再讲admin.php文件(注:此文件在Genesis1.8.0 以后已经废弃),deprecated.phpfeed.php就不讲了。不要使用deprecated.php中的任何函数,且feed.php除了它能干的事情之外也没有多大用处。

这次我们看一下formatting.php。如果你看过前一篇文章,应该还记得,该文件主要关注文本的样式处理。不是所有函数都可以被使用,我将带你深入研究其中的几个。以下是Genesis 1.6中该文件的所有函数的列表(注:依据Gensis2.8更新)

  • genesis_truncate_phrase()
  • get_the_content_limit()
  • the_content_limit()
  • genesis_rel_nofollow()
  • genesis_strip_attr()
  • genesis_tweet_linkify() (注:Genesis 2.0.0 后废除)
  • g_ent()(同上)
  • genesis_formatting_allowedtags()

它们都是干啥的,怎么用呢?

genesis_truncate_phrase($phrase, $max_characters)

该函数本质上是给genesis_get_content_limit()使用的辅助函数。它有两个必需的参数。 $phrase是要限制的文本,$max_characters是允许的最大字符数。在你在想要限制文本长度的时候可以考虑使用它。例如,我有一个客户,他在自定义菜单上放了一个下拉菜单,里面带了缩略图和标题。虽然标题可以会很长,所以如果太长的话(谁真的超过需要100多个字符的标题?),就不得不截断标题。代码如下

echo genesis_truncate_phrase( get_the_title(), 100 );

该函数可以返回限定过长度的内容。另一个函数the_content_limit()作用相同,但是会自动把内容打印出来,能节省一点代码量。这两个函数最多接受3个参数。第一个$max_char是必需的,用于设置从多少个字符后开始裁剪内容,即保留多少个字符。后两个是可选的,如果没有传递,则是默认值。 参数$more_link_text是显示“更多…”链接的几个字的文本,默认为“more…” teaser是<!--more-->标签之前的内容,$stripteaser默认是false,不会输出任何内容。

该函数使用get_the_content()获取内容,然后删其中的html标签。这很重要,虽然这可能会有些走样,但这样可以防止出错并提供准确的字符数统计。如果不这样做可能会导致的错误是html标签没有关闭。例如,如果你在文本被截断的位置中间正好有一个链接,那么这个链接可能就会出错。其他html元素也是如此。在标签清理完并且其他方面的准备也做完之后,就使用genesis_truncate_phrase对内容进行截断,然后构建一个“更多”的链接(如果有的话)。

第一个过滤器出现的在 “get_the_content_more_link”,通过它可以修改“更多”的链接文字。下一个过滤器“get_the_content_limit”允许你在返回内容限制之前更改最终输出,你可以使用它将其包在div中,在之后、之前甚至中间注入代码,或将$link移动到开头。 the_content_limit也是一个可以用于修改“the_content_limit”输出的过滤器。但是用the_content_limit将无法获取到的$content$link$max_char变量。

用法如下

printf( '<div class="post-teaser">%s</div>', get_the_content_limit( 300, '[Keep Reading]' ) );

这将把帖子内容限制在不超过300字,并在div中输出。

genesis_rel_nofollow($xhtml)

一个简单的函数,用于创建nofollow链接。

function genesis_strip_attr( $text, $elements, $attributes, $two_passes = true )

这是一个非常复杂的函数,它接受任何$xhtml文本,然后使用提供的搜索条件(pattern)从特定元素中删除属性。$elements$attributes 参数可以是数组或字符串。 比如genesis_rel_nofollow()函数,它是用于链接中的删除任何rel属性,然后再返回给wp_rel_nofollow()函数。这可以防止rel值被重复添加。这个函数也可以用来删除标题

$link = '<a href="http://example.com" title="title">Anchor Text</a>';
echo genesis_strip_attr( $link, array( 'a' ), array( 'title' ) );
// outputs "<a href="http://example.com">Anchor Text</a>"

genesis_formatting_allowedtags()

返回在清洗内容中允许的html标签。包含过滤器可让允许更多标签或删除这些标签。

我希望这有助于你理解这些函数。接下来我将深入讲下图像函数。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Genesis框架从入门到精通(7): 框架的过滤器

    Genesis Explained Framework Filters

    丘壑
  • Genesis框架从入门到精通(5):框架的内置动作(又续)

    现在你已经了解了什么是动作,已经如何使用它们来添加新内容、移动和删除现有内容,可能你还会用到一个更有用的技巧。那就是:

    丘壑
  • Genesis框架从入门到精通(9): 函数介绍

    In previous parts of the Genesis Explained series I talked about actions and fil...

    丘壑
  • Kinect for Windows SDK V1.7 发布

    2013 年 3 月 18 日,微软对Kinect更新了SDK,目前的版本号已经到了1.7。 最新的SDK可以到开发者下载页面下载:Kinect Develop...

    ShiJiong
  • Linux软件管理 - 编译安装

    文本关键字:Linux、软件管理、configure、make、make install

    聚沙成塔
  • Wyn Enterprise 核心功能:行业领先的在线数据报表设计体验

    Wyn Enterprise 将 BI 和报表融为一体,创新性的在线报表设计功能,提供类似微软 Office 产品的使用体验,功能丰富却极易上手。对软件公司而言...

    葡萄城控件
  • Microsoft Surface Duo:重新思考智能手机

    我已经使用微软 Surface折叠屏一周多了, 这是我新喜欢的智能手机。它优化更多的业务,而不是消费者都是用相同的。但对于我使用智能手机的方式,它是一个更好的设...

    甜甜圈
  • 专栏 | 对话OpenAI Jack Clark:中国是人工智能领域的领军者

    机器之心为此系列华语合作方,为大家带来此对话的中文译文,读者可点击「阅读原文」查阅原英文字幕对照收听音频。以下为此系列内容的第一篇,Craig Smith 与 ...

    机器之心
  • docker安装es

    (3) mkdir -p /mydata/elasticsearch/config

    用户2337871
  • 协作机器人中如何对人进行形式化建模(cs)

    机器人协作(HRC)是机器人学的一个新兴趋势,它促进了人类和机器人在共同的工作空间中的共存与合作。人与机器人之间的物理邻近和相互作用,再加上人类行为的不确定性,...

    柴艺

扫码关注云+社区

领取腾讯云代金券