前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Genesis框架从入门到精通(13): 小部件函数

Genesis框架从入门到精通(13): 小部件函数

作者头像
丘壑
发布于 2019-03-13 02:53:33
发布于 2019-03-13 02:53:33
1.1K00
代码可运行
举报
文章被收录于专栏:一丘一壑一丘一壑
运行总次数:0
代码可运行

Genesis Explained系列中的上一篇文章是关于配置项函数的,并演示了一些用于从数据库中检索自定义字段和主题选项的重要函数。本文是关于 genesis/lib/functions/widgetize.php 文件的。 以下是文件中所有函数的列表:

在我们深入研究之前,我想先讨论一些名词术语。

侧边栏(Sidebar)

WordPress中的侧边栏术语是指主题中任何可以用于添加窗口小部件的部分。狭义的Sidebar通常就是指“侧边栏”,这也就是这个术语的原意,但是越来越多的高级主题把所有区域都当作侧边栏来使用。它们可能出现在网站头部区、页面内容区、侧边栏区或页脚区。有些人通常会把这些称作“小部件”,但这不准确,可能导致混淆。可以把它们叫做侧边栏或小部件区域。

侧边栏有几个重要部分。侧边栏名称,ID,小部件之前和之后,以及小部件的标题之前和标题之后。我们稍后会详细讨论这些内容。

窗口小部件(Widget)

小部件要放入侧边栏内。在WordPress中注册小部件需要扩展一个特殊的类,一个小部件包括有两个主要部分。后台和前端。在后台,可以将小部件拖动到侧边栏中。小部件放入侧边栏后,你还可以对其进行各种设置。如果窗口小部件无法找到它应该归属的侧边栏位置,则会被归入到非活动窗口小部件。当ID发生变化时会发生这种情况。后面我将再次讨论这个问题。前端就是是网站上实际出现的内容。

function genesis_register_widget_area( $args )

此函数只有一个参数,但它是一个数组值。内置默认值如下:

这里有一个过滤器“genesis_register_sidebar_defaults”可你让你更改任何默认值。如果你想要一个不同的标题或小部件区域,这是非常方便的。默认传递值被解析后,就会用register_sidebar()注册一个新的侧边栏。当然你可以直接使用register_siderbar()函数,但让我们看看Genesis函数的效率如何 。

两种方法都会创建相同的侧边栏,但Genesis的函数需要的信息要少得多。唯一的要求是名称和ID。你甚至可以省略ID,但我不推荐这么做。如果你的小部件有ID,那么它会呆在它该呆的地方。否则,如果侧边栏的顺序发生变化,那么你的窗口小部件将移动到其他侧边栏或非活动窗口小部件。

ID应为小写且没有空格。如果你想使用空格,那就在里面放一个“ – ”。这很重要,因为这个ID会被用作html中的ID,因此需要符合html标准。另外,如果有空格,WordPress可能会跟踪不到你的小部件。

当然,如果你想创建一个特殊侧边栏,可以更改默认值。

你可以通过取消注册来删除任何默认侧边栏。这是通过unregister_sidebar()函数完成的。只需将它放在您的functions.php文件中即可删除辅助侧边栏:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unregister_sidebar( 'sidebar-alt' );

当然,这在布局选项中还会保留。要删除它们,你需要删除布局中的选项。我将在下一次涉及layout.php文件时讨论这个问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NULL 值与索引(一)
    NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的。由于 NULL存在着无数的可能,因此NULL值也不等于NULL值,所以与NULL值相关的操作同样都为NULL值。正是基于这样一个特性,对于NULL值列上的B 树索引导致了is null/is not null不走索引的情形,下面描述了NULL值与索引以及索引NULL列上的执行计划,如何使得NULL值走索引的情形。 注:本文仅仅讨论的是B树索引上的NULL值,位图索引不在此范围之内。 一、null值与索引的关系
Leshami
2018/08/14
1.6K0
【DB笔试面试567】在Oracle中, IS NULL如何用到索引?
IS NULL用于判断某一列中的值是否为空。当IS NULL作为WHERE条件的时候,该列是不会用到索引的,但是可以加伪列创建伪联合索引来使得IS NULL使用索引,看如下的例子:
AiDBA宝典
2019/09/29
6990
使用 EXPLAIN PLAN 获取SQL语句执行计划
     SQL查询语句的性能从一定程度上影响整个数据库的性能。很多情况下,数据库性能的低下差不多都是不良SQL语句所引起。而SQL语句的执行 计划则决定了SQL语句将会采用何种方式从数据库提取数据并返回给客户端,本文描述的将是如何通过EXPLAIN PLAN 获取SQL语句执行计划来获 取SQL语句的执行计划。
Leshami
2018/08/14
1.2K0
Oracle优化05-执行计划
如果要分析某条SQL的性能问题,通常来讲,我们首先要看SQL的执行计划,看看SQL的每一步执行计划是否存在问题。
小小工匠
2021/08/16
8030
【DB笔试面试475】分区表性能注意事项有哪些?
② 在设计分区表时,避免数据都进入默认分区,从而导致出现默认分区超大或各个分区大小严重不均衡的情况,失去分区表的意义。
AiDBA宝典
2019/09/30
5750
通过索引提升SQL性能案例一则
最近有个应用,前端调用后台的一个逻辑很慢,请开发提供了对应逻辑使用的SQL,进行脱敏,示例如下,
bisal
2021/03/23
2910
Oracle SQL性能分析之10053事件
优化器生成正确执行计划的前提条件是要有正确的统计信息,不准确的统计信息往往会导致错误的执行计划。当通过SQL和基数推断出的执行计划和实际执行计划不同时,就可以借助10053事件。10053事件是用来诊断优化器如何估算成本和选择执行计划的,用它产生的trace文件提供了Oracle如何选择执行计划,为什么会得到这样的执行计划信息。和10046事件类似,它主要用于特殊情况下的分析和诊断。
星哥玩云
2022/08/17
6760
Oracle优化07-分析及动态采样-直方图
获取准确的段对象(表、表分区、索引等)的分析数据,是CBO存在的基石。所以数据段的分析对于CBO来讲非常的重要。
小小工匠
2021/08/16
3120
【DB笔试面试593】在Oracle中,表的访问方式有哪几种?
访问表的方式也叫优化器访问路径,主要有3种访问路径:全表扫描(FULL TABLE SCAN,FTS)、索引扫描(INDEX SCAN)和ROWID访问。
AiDBA宝典
2019/09/29
1.2K0
【DB笔试面试593】在Oracle中,表的访问方式有哪几种?
高效SQL语句必杀技
        No SQL,No cost. SQL语句是造成数据库开销最大的部分。而不良SQL写法直接导致数据库系统性能下降的情形比比皆是。那么如何才能称得 上高效的SQL语句呢?一是查询优化器为当前的SQL语句生成最佳的执行计划,保证数据读写使用最佳路径;二是设置合理的物理存储结构,如表 的类型,字段的顺序,字段的数据类型等。本文主要描述如何编写高效的SQL语句并给出示例。下面的描述主要分为三个部分,一是编写高效SQL 语句,二是使用索引提高查询性能的部分,三是总结部分。
Leshami
2018/08/14
1.4K0
Oracle 和 Mysql 的索引在Null字段上处理的异同
本文作者系Scott(中文名陈晓辉),ORACLE数据库专家,就职于甲骨文中国。个人主页:segmentfault.com/u/db_perf ,经其本人授权发布。
SQLplusDB
2022/08/22
1.1K0
Oracle 聚簇因子(Clustering factor)
    聚簇因子是 Oracle 统计信息中在CBO优化器模式下用于计算cost的参数之一,决定了当前的SQL语句是否走索引,还是全表扫描以及是否作为嵌套连接外部表等。如此这般,那到底什么是聚簇因子,那些情况下会影响到聚簇因子,以及如何提高聚簇因子?本文将对此展开描述。
Leshami
2018/08/14
1.7K0
Oracle 聚簇因子(Clustering factor)
【DB笔试面试553】在Oracle中,什么是不可见索引?
索引维护是DBA的一项重要工作。当一个系统运行很长一段时间,经过需求变更、结构设计变化后,系统中就可能会存在一些不再被使用的索引,或者使用效率很低的索引。这些索引的存在,不仅占用系统空间,而且会降低事务效率,增加系统的负载。因此,需要找出那些无用或低效的索引,并删除它们(找出无用索引可以通过索引监控的方法)。但是,直接删除索引还是存在一定风险的。例如,某些索引可能只是在一些周期的作业中被使用到,而如果监控周期没有覆盖到这些作业的触发点,那么就会认为索引是无用的,从而将其删除。当作业启动后,可能就会对系统性能造成冲击。这时,可能就会手忙脚乱地去找回索引定义语句、重建索引。在Oracle 11g里,Oracle提供了一个新的特性来降低直接删除索引或者禁用索引的风险,那就是不可见索引(Invisible Indexes)。
AiDBA宝典
2019/09/29
6770
Oracle 全表扫描及其执行计划(full table scan)
    全表扫描是Oracle访问数据库表是较为常见的访问方式之一。很多朋友一看到SQL语句执行计划中的全表扫描,就要考虑对其进行修理一番。全表扫描的存在,的确存在可能优化的余地。但事实上很多时候全表扫描也并非是最低效的,完全要看不同的情形与场合,任一方式都是有利有弊的,也就是具体情况要具体分析。本文描述了什么是全表扫描以及何时发生全表扫描,何时全表扫描才低效。   本文涉及到的相关链接: 高水位线和全表扫描 启用 AUTOTRACE 功能 Oracle 测试常用表BIG_TABLE Oracle
Leshami
2018/08/13
2.8K0
Oracle 索引扫描的几种类型
1.对于unique index来说,如果where 条件后面出现了<,> ,between ...and...的时候,那么就可能执行index range scan,如果where条件后面是=,那么就会执行index unique scan。
星哥玩云
2022/08/17
6200
【DB笔试面试258】在Oracle中,执行计划里的access和filter有什么区别(上)?
一般而言,access表示这个谓词条件的值将会影响数据的访问路径(表还是索引);filter表示谓词条件的值不会影响数据的访问路劲,只起到过滤的作用。NOT IN或MIN函数等容易产生filter操作。
AiDBA宝典
2019/09/30
1.4K0
【DB笔试面试258】在Oracle中,执行计划里的access和filter有什么区别(上)?
Oracle ROWID 方式访问数据库
    和ROWNUM一样,ROWID是一个伪列,即是一个非用户定义的列,而又实际存储于数据库之中。每一个表都有一个ROWID列,一个ROWID值用于 唯一确定数据库表中的的一条记录。因此通过ROWID 方式来访问数据也是 Oracle 数据库访问数据的实现方式之一。一般情况下,ROWID方式的 访问一定以索引访问或用户指定ROWID作为先决条件,因为所有的索引访问方式最终都会转换为通过ROWID来访问数据记录。(注:index full scan 与index fast full scan除外)由于Oracle ROWID能够直接定位一条记录,因此使用ROWID方式来访问数据,极大提高数据的访问效率。
Leshami
2018/08/14
2.1K0
聚簇因子和执行计划的联系(r3笔记第90天)
在平时的工作中,可能会碰到一种很奇怪的问题,本来在生产环境中有些sql语句执行没有问题,一个很普通的查询预期走了索引扫面,但是拷贝数据到其它环境之后,就发现却走了全表扫描。 或者情况相反,本来出现问题的查询走了全表扫描,我们尝试在测试环境中浮现,但是测试环境中在相同的数据量的情况下,查询却又走了索引扫描,问题无法复现了。 出现这种情况的原因比较复杂,涉及很多的原因,其中一个很重要的原因就是聚簇因子的导致的。 聚簇因子是一个与索引相关的统计信息,它通过查看表中的数据块来进行计算得到。 对于这个问题,可能直接说
jeanron100
2018/03/15
6020
INDEX FULL SCAN vs INDEX FAST FULL SCAN
     INDEX FULL SCAN 与 INDEX FAST FULL SCAN两个长相差不多,乃是一母同胞,因此既有其共性,也有其个性。两者来说其共性是不用扫描表而是通过索引就可以直接返回所需要的所有数据。这对提高查询性能而言,无疑是一个难得的数据访问方式之一,因为索引中存储的数据通常是远小于原始表的数据。下面具体来看看两者之间的异同。
Leshami
2018/08/14
2.4K0
关于索引和空值的讨论(r3笔记第80天)
在日常的工作中,空值总是有特殊的身份,对于它的处理有时候也是比较纠结。 有时候创建索引的时候会因为空值出现一些奇怪的结果。 有时候一个简单的查询因为空值却走不了索引。 有时候却因为空值而能走索引。 我们来简单的模拟一下这些问题。 首先创建一个空表,注意对于id列我们是加了not null的约束的。 SQL> create table index_test(id number not null,name varchar2(30) ) ; Table created. 我们创建一个唯一性索引,包含了id
jeanron100
2018/03/15
7450
推荐阅读
相关推荐
NULL 值与索引(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验