GeneratePress主题hooks是一个比较有用的功能,老魏的理解是类似于Code Snippets插件功能,不过要更强大。Code Snippets仅能添加各种php代码,而Hook还能添加统计代码,js代码等等。即使非专业开发者在熟悉了Hook之后也可以对主题进行各种改造。在本文中老魏教大家如何使用GeneratePress主题Hooks功能。
国外建站主题及插件选择2核4G内存3M带宽能流畅运行。国内服务器:阿里云、腾讯云(都有代金券,付款时抵用省钱), 不知道如何选择地域、配置请在页面右侧+老魏的联系方式,我们一起研究。
外贸网站、B2C/C2C等建议在国外注册域名。打开namesilo官网,在搜索框里输入要注册的域名,选择好之后注册,付费之前记得使用优惠码省钱。优惠码点击国外域名商Namesilo域名注册教程获取。
外贸网站建议选择Hostinger虚拟主机,价格便宜,性价比极高!Hostinger专题
SiteGround虚拟主机价格适中服务好!SiteGround专题
GP Premium启用Hook
Hooks是GeneratePress主题高级功能,要提前安装GP Premium插件后才能使用。
不熟悉GeneratePress高级插件的朋友请看GP Premium插件安装部署详细图文教程。
接下来在 wordpress后台>外观>generatepress的右侧,Activate启用 Elements,如下图所示是已经启用了。
启用之后在页面左侧和上面都能看到 elements的按钮(红色箭头)。

GP Premium启用Elements
新建Hook并设置
1、新建hook
接着上面说的点击 Elements进入开始新建hook。
去页面上面点击 add new element,弹窗选择 element type 为 hook,点击 create创建。

GP Premium新建hook
2、设置hook
创建好的hook是一个类似于文章发布的页面,如果你用过Code Snippets插件和Header Footer Code Manager插件就应该很熟悉这个界面了,大体上操作都是类似的。
如果是新手、小白没有接触过这么复杂的操作界面也没关系,老魏会用最简单直白的语言给你解释明白。
如下图所示老魏给这个操作界面分成四部分。
第一部分是放代码的区域。
大家可以看到放代码区域包括两部分,一是给这个hook起个名字,下面1,2,3 这些行的地方就是放代码的区域。比如下图中老魏放的是网站统计代码。
第二部分是设置区域(settings)。
我们分开一行行的解释。
- Hook后面点击下拉箭头可以看到有很多选项比如 header,navigation,comments,content,footer等等,这些表示这个hook要插入到当前页面的哪个位置。(这些都是 wordpress的构成部分,不熟悉的话请了解WordPress网页基本结构和页面布局)
还是以本例中的网站统计代码举例子,老魏选择了 wp_footer(在 footer后面展示)。如果你还想进一步选择放到 footer的哪个位置,可以在下拉框中选择 before_footer 或者 after_footer等等。
你可以通过GeneratePress的hook位置介绍图来解决自己要插入到哪个位置。
- 在内容里面填写短代码勾选 Execute Shortcodes;
- 在内容中填写PHP代码勾选 Execute PHP;
- Priority代表优先级的意思,当Hook与插件或代码发生冲突时,用优先级来调整执行的先后顺序;

GP Premium设置hook
第三部分是hook展示规则区域(Display Rules)。
意思是说哪些页面可以执行这段代码及给哪些用户展示。默认在所有页面展示给所有用户。而往往很多时候我们希望在指定页面才展示,可以通过下面的规则改变设置。
- Location默认是全站展示代码,按照个人需要可以设置文章页展示,或只在blog页面展示,只在某个分类目录下展示等等;
- Exclude是排除某些页面的意思。下拉后和 Location是一样的内容,含义正好相反:不要在这些页面上展示;
- Users:展示给哪些用户的意思。可以给 all users,logged in已登录用户,logged out 未登录用户,以及不同等级的用户;

GP Premium设置hook展示规则
第四部分是注释区域(internal Notes)。
这里面用来给这条 hook添加注释用的,帮助你记忆为什么添加这条hook,是干什么用的。
发布hook
上面都设置好了之后点击页面右侧的 update发布,代码会立即生效,后面有变化也可以随时改动这些选项,方便的很。
Hook不能执行PHP代码
勾选 Execute PHP之后页面提示“Unable to execute PHP as DISALLOW_FILE_EDIT is defined”,是无法执行php代码的意思。解决办法如下:
打开WordPress网站根目录下的 wp-config.php文件,找到 define(‘DISALLOW_FILE_EDIT’, false); 后删除。
刷新页面后就不再有错误提示了。
老魏点评
GeneratePress主题Hooks对于我们设计主题过程中,以及后期有定制要求的时候特别有用,可以帮助我们实现各种各样想法、功能,而无需添加插件。hook功能需要在GP Premium插件中开通elements后才能使用,是elements众多功能中的一种。后面老魏也会就hook写出实例来讲解具体如何使用。