专栏首页一丘一壑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 条评论
登录 后参与评论

相关文章

  • Ajax中的JSON格式与php传输过程的浅析

    原文地址:https://www.cnblogs.com/DOMLX/p/7831820.html

    徐飞机
  • dedecms 漏洞修复方案及解决网站被黑的办法

    前段时间网站被黑了,从百度打开网站直接被劫持跳转到了cai票,du博网站上去,网站的首页index.html文件也被篡改成一些什么北京sai车,pk10,一些c...

    技术分享达人
  • CentOS 安装 PHP

    1.获取PHP安装文件: downloads  或直接下载 php-5.5.9.tar.gz

    阳光岛主
  • PhpStorm+Wamp配置debug web调试

    在学习php的时候,如果直接报错没有debug,排错过程是很痛苦的。所以配置了一下phpstrom的debug。步骤下面会为大家详细带来。

    十里桃花舞丶
  • 搜索引擎的原理

    搜索引擎蜘蛛(spider),可简称为蜘蛛,本意为搜索引擎机器人(robot),称为蜘蛛的原因是将互联网比喻成蜘蛛网,将机器人比喻成了在网上爬行的蜘蛛,是搜索引...

    阳光岛主
  • Golang实现的持久化消息队列-OPQ

    这是个搁置了有段时间了的个人兴趣项目,还有不少完善工作需要做,这里记录下基本思路和实现,欢迎拍砖。

    levinllin
  • 自定义 WordPress 样式

    修改页面头部、脚部的文件路径:wp-content ——》themes ——》twentyten ——》footer.php、header.php

    阳光岛主
  • Linux 搭建 discuz 论坛

    Discuz! 是腾讯(Tencent)旗下 Comsenz 公司推出的以社区为基础的专业建站平台,帮助网站实现一站式服务。让论坛(BBS)、个人空间(SNS)...

    阳光岛主
  • php使用pecl安装mongodb扩展

    默认情况下,php并没有安装mongodb扩展,会报Class 'MongoDB\Driver\Query' not found错误。

    章鱼喵
  • Ubuntu 配置 Apache

    系统环境:Ubuntu 10.10(linux-kernel 2.6.35-22)

    阳光岛主

扫码关注云+社区

领取腾讯云代金券