专栏首页一丘一壑Genesis框架从入门到精通(12): 配置项函数

Genesis框架从入门到精通(12): 配置项函数

Genesis Explained Option Functions

In the last post in the Genesis Explained series I explained the image functions for Genesis. In this post I’ll be going through the genesis/lib/functions/options.php file. There are technica…

Designs By Nick the Geek


Genesis Explained系列的上一篇文章中,我解释了Genesis的图像函数 。在这篇文章中,我将介绍 genesis/lib/functions/options.php 文件。

这是完整的函数列表:

前6个函数是关于主题配置选项的,实际上都是 genesis_get_option()的不同版本。最后一个函数是过滤器的一部分。

function genesis_get_option( $key, $setting = null, $use_cache = true )

该函数可以接受3个参数。第一个$key是必需的,标明要返回的选项值。例如,如果我想获取到管理后台里Genesis配置的“特色图片”的尺寸,那就要使用“image_size”作为$key。你可以在genesis /lib/admin/theme-settings.php文件中查找所有内置选项。

$setting 是可选参数. 默认是在GENESIS_SETTINGS_FIELD中查找。你还可以使用GENESIS_SEO_SETTINGS_FIELD来做一些其他的设置。你甚至可以创建自己的设置字段并使用此函数来获取该字段的值。

比如你在WordPress后台中设置了Genesis的一些配置:

如果想在自己的子主题中使用关于特色图像的一些选项,可以这样用:

genesis_get_option

你可以使用“ genesis_pre_get_option_key”来过滤选项,把key替换成你想要过滤的键名,比如你想要更改特色图像的大小,则可以先添加一个过滤去,再编写一个函数,让它在不同的情况下返回一个不同的值。如下:

genesis_pre_get_option_image_size

genesis_get_option函数在返回值之前还可有另一个过滤器 genesis_options,允许你过滤要返回的内容,可以使用 preg_replacestr_replace 更改从数据库查询后返回的值。 genesis_pre_get_option_$key对此不起作用,因为它会原样返回你设定的任何值而不会去查数据库。

genesis_option()完全相同,只是它会把genesis_get_option的返回值自动打印出来。

function genesis_get_seo_option( $key, $use_cache = true )

此函数与 genesis_get_option大致相同,不同之处在于它为 genesis_get_option函数提供了GENESIS_SEO_SETTINGS_FIELD, 可以获得到Genesis中对SEO的配置选项,用这个函数可以节省一些代码。 genesis_seo_option()会自动打印出来 genesis_get_seo_option返回的值。

function genesis_get_custom_field( $field, $post_id = null )

这个Genesis函数简化了WordPress的get_post_meta函数的使用方法。$field是必需的,是你要获取的自定义字段的名称,$post_id可以指定某一篇文章。genesis_custom_field()函数会自动打印出返回值。

举个例子,如果要在Genesis动作函数中获取文章的自定义字段,你需要使用WordPress函数:

WordPress的get_post_meta函数

使用这个Genesis函数可以简化这个步骤

Genesis函数genesis_get_custom_field

但有些时候你会不想使用这个函数。它不适用于数组值,因此如果你有多个具有相同名称的字段,则需要使用WordPress函数来获取一个对象(数组),然后你可以将其转换为可以输出的字符串。 genesis_custom_field函数还具有一些内置的安全检查,在返回值之前运行stripslashes() 函数和wp_kses_decode_entities() 函数,这可能会阻止某些代码正常工作。不过大多数情况下这不是问题,用genesis_get_custom_field 函数可以节省大量时间。

配置项的函数基本就这些了。下次我将介绍 genesis/lib/functions/widgetize.php 并总结一下Functions子系列。之后在Genesis Explained系列中有两部分内容,一是管理后台,将涵盖主题的配置选项和文章、分类项的信息等、(post / term meta),然后是CSS样式表。

注:

同样的原因,原文写作时间比较久远,里面有些例子和代码已经在Genesis最新版2.8中不合适了,所以对照最新代码改了一下,在原文基础上有删减,也有增加。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Genesis框架从入门到精通(14): 布局函数

    正如我之前在Genesis Explained系列文章中所承诺的那样,今天将要填 genesis/lib/functions/layout.php 这个文件的坑...

    丘壑
  • Genesis框架从入门到精通(11): 图像函数

    Genesis Explained Image Functions

    丘壑
  • Genesis框架从入门到精通(1):什么是框架?

    WordPress主题框架Genesis的工作原理可能会让很多人感到困惑不解,这导致开发者在开始用Genesis框架时可能会一脸蒙逼,无所适从。

    丘壑
  • Genesis框架从入门到精通(11): 图像函数

    Genesis Explained Image Functions

    丘壑
  • 如何使用腾讯云提供的虚拟主机

    Jerry Wang
  • 7款iPhone在华被禁售!苹果在福州法院遭遇全球首场败诉

    看似两家美国高科技公司的过节,在这个时间点发生在中国,却让人不得不去多想其后的深意。路透社凌晨报道中直接称,“这可能是个政治游戏……关于苹果公司在中国最大的竞争...

    大数据文摘
  • 这是前端最好的时代——论前端的“三化”建设

    这是前端最好的时代——论前端的“三化”建设 原文发表于:CSDN 作者: 腾讯AlloyTeam, 李成熙LeeHey "每18至24个月,前端都会难一倍"(注...

    李成熙heyli
  • 返回函数

    一个函数可以返回一个计算结果,也可以返回一个函数 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回 返回一个函数时,牢记该函数并未执行,返回...

    py3study
  • 【机器学习基础】特征选择的Python实现(全)

    机器学习中特征选择是一个重要步骤,以筛选出显著特征、摒弃非显著特征。这样做的作用是:

    黄博的机器学习圈子
  • 打造3D心脏,斯坦福大学用VR辅助治疗心脏病

    VRPinea

扫码关注云+社区

领取腾讯云代金券