如何在WordPress中编写和激活函数

如果您开始开发自己的WordPress插件,或者您正在创建自己的主题,您需要学习的技能是写作功能.

虽然你已经写了一个没有工作的功能,你已经放弃了挫败感.或者也许你是由行动和过滤钩子混淆的,你不确定如何让你的功能工作.

在这篇文章中,我会帮助您通过写作功能的任何出牙问题.我将向您展示如何构建功能,为您提供最佳实践提示,并澄清您可以使用的方法来激活功能.

所以让我们开始!

  • 你需要的是什么
  • 你应该把你的功能放在哪里?
  • 写作你的功能

    • 添加评论
    • 打开功能
    • 填充功能

  • 激活函数

    • 将函数编码为主题模板文件
    • 通过动作钩引导函数
    • 通过筛选器挂钩引导函数
    • 使用条件标签


您需要的

与本教程一起进行,如果您有一个您已经锻炼的功能,它就会有用.这样你就可以把你学习的实践放在实践中,你会得到更多信息.在这种情况下,您需要一些工具:

  • 代码编辑器
  • WordPress
  • 的开发安装
  • 为您的函数文件-可以在您的主题的函数中.php 文件,或者可以在插件中.

如果你没有,因为你还没有开始你的功能,不要担心-阅读,你会学习如何开始.

您应该在哪里放置函数?

在开始之前,您需要考虑您将在哪里放置代码的功能.您有两种选择:您的主题文件文件或插件.

您使用的是函数的目的:

  • 如果它与您的内容的设计和显示有关,则将其放在主题中.它与主题直接相关,只能与其余的主题代码一起工作.
  • 如果它的功能(并且大多数函数是,线索在名称中),然后将其放在插件中.

我们中的许多人在我们的函数文件中开始,因为这更容易,然后我们在获得信心时继续创建插件.创建插件实际上非常简单-查看我们的创建插件指南.

如果您有信心的插件应该在主题函数文件中,并且您的主题尚未拥有一个,请查看函数文件的最终指南.

编写函数

所以,现在您已打开文件( clusers.php 或您的插件文件),您可以编写该功能.让我们把它分成零件.

添加注释

我知道你在想什么:评论,我们不能再上手写一些代码吗?但我总是在编码我的插件之前添加评论.这样,当我回到它时,我可以看到我的功能是什么.有时我不需要多年回到一段代码,并相信我,我会忘记该代码在我做的时候如何工作!如果有人需要努力工作,那么评论将帮助他们理解它的所作所为.

我的功能将是一个简单的功能,用于在我的主题中注册几个谷歌字体.它在主题函数文件中,因为它与显示而不是布局.但首先,我将添加一些评论:

加载gist de9cc0fe9de6ce1711adf384a09f3a5f

我格式化了我的评论,所以当我在稍后通过文件迅速滚动文件时,他们可以清晰易于找到.

打开功能

现在是时候编写函数了.您将其打开它function和函数的名称.您应该始终使用函数名称的前缀来帮助确保其名称是唯一的.这样它不会与主题中的任何功能或任何第三方插件发生冲突.使用您正在编写代码的站点或插件的名称,姓名缩写或名称或姓名姓名.

您将使用Crace括号遵循此功能,其中主题的代码进入:

加载GIST A89E565B86B7C1CD2A0C9D82447F372C

填充函数

您希望运行函数的所有代码都在括号内.这包括任何条件标签,我稍后会更详细地解释.这是我的Google字体功能的代码:

加载GIST A2DC67C80217582D046B8FC1678F4D8A

我不会教你如何在这里编写特定函数,因为这将取决于您尝试实现的目标.我们有很多其他帖子,可以帮助您解决各种功能-更不用说我们的学术课程WordPress Development!

这是全功能:

加载GIST 5ED34D25438D267DA2C7BD52441B0370

但是一旦你完成了,你就可以在您的网站上打开一个页面,并想知道为什么不发生任何事情.那是因为你还没有激活你的功能.

激活函数

功能无用,除非您以某种方式激活它,否则拨打WordPress何时射击功能.您有三种选择:

  • 代码直接进入主题模板文件(或其他插件文件).
  • 将它附加到动作钩.
  • 将其连接到过滤器钩子.

让我们看看这些中的每一个.

将函数编码为主题模板文件

如果您使用自己的主题,则此选项仅适用于您.

如果要与第三方主题进行这样做,您必须创建一个子主题,复制子主题中的父主题中的相关主题模板文件,并将函数添加到其中.如果通过将来更新父主题的更新更改模板文件,则您的子主题文件(将使用哪个WordPress)不会反映.

我将假设您正在使用您开发的主题,您可以在多个模板文件中重复一下代码段.而不是创建包含文件并在这些文件中调用它,而是决定使用函数文件并创建一个函数-用于代码片段的函数更高效.

让我们想象你的函数回声.这是:

加载GIST 45057F06F3DDD5C7BCE493954262C571
现在,要将此代码添加到您的主题,您将在您希望代码运行的位置添加此代码,将其添加到您的主题模板文件中:

加载GIST 8B56F9742C554AFF01E77D4AAD63EC

简单!您只需将此代码添加到主题中的相关模板文件中.

通过动作钩引导函数

替代品使用动作钩.这是允许您运行附加到它的代码的代码,每次WordPress遇到挂钩.

您可以使用WordPress已提供的挂钩,或者您可以创建自己的钩子.

在字体函数我上面写道的情况下,您可以使用WordPress:wp_enqueue_scripts钩子提供的钩子.所以要解雇我的功能,我将在括号外添加:

加载GIST 76233077A815A728D57ADC589FFDD922
所以我的全功能看起来像这样:

加载GIST D791D151F52BBF823943897E0B4EC06A

现在让我们看看我可以写自己的钩子的一个例子.而不是将我的功能直接输出到我的主题模板文件(在这种情况下循环),我使用do_action()添加一个动作钩子,然后将我的函数挂钩.

所以在我的模板文件中我添加这个:

加载GIST 93AFBA0B9C1BDD01FC49611437BB26F7
然后我将我的功能附加到那样,所以整个东西读取:

加载GIST 63FA39BedDCD098BA3919AE1414340F1

通过筛选器挂钩启动函数

其他类型的钩子是滤波器.在创建时,这将围绕某些代码或内容包裹,并且您的函数将覆盖该代码.如果要将某种东西归档为主题模板文件,但它是有用的,但让自己选择稍后将其推翻.WordPress还为您提供一系列过滤器挂钩,用于各种功能.

如果您不确定两种类型的钩子之间的区别,我们的操作指南和筛选挂钩将为您澄清一下.

这是一个例子:模板文件中的一块文本.

注意:我知道将文本直接写入模板文件不是最好的实践.我也知道这样做就是这样,没有内化也是糟糕的做法.但这是一个简单的例子,所以请不要在评论中打败我.

要将筛选器挂钩添加到模板文件中,使用筛选器名称的apply_filters()函数作为第一个参数和默认内容为第二个参数:

加载GIST B860800AB600232F52A6643D3C8DA5F0

和这里你如何将附加到它的函数:

加载GIST D4C6F4EF94F4D90483E775E968D80EC0

注意函数后的add_filter()函数与add_action()函数非常相似.第一个参数是钩子的名称,第二个参数是函数的名称.另请注意,apply_filters()函数通常在echo之前,因为它会回应一些文本(在这种情况下,标题).

使用条件标签

当您使用挂钩启动您的功能时,可以将其与条件标签组合,以定义功能将触发的情况.

我经常看到人们出错的是条件标签的定位.逻辑可以告诉您,您只希望在特定情况下触发功能,因此您将条件标签放在功能外,右?

错误.

这里有两种方法,我已经看到了它,这两个都是错误.首先,将标签缠绕在动作钩周围:

加载GIST B1202F3C8A69F97061A5621FDE29E960
然后,围绕函数包装它-也是错误:

加载GIST 77A9D9DD25D27B11AAFEF2E321C6735A

唯一正确的方法是将条件标记放在函数内的代码周围.所以功能将在所有情况下发射,但如果不符合条件,那么什么都不会发生.

这是正确的方法来使用条件标记来检查单个帖子:

加载GIST A69C3E296F00365150782D7655AF1560F.

使用这样的条件标签使得事物更简单,更精确,并且对于功能强大使用.

知道如何编写和激活函数将KickStart启动

了解函数如何工作并能够编写它们是一个重要技能,如果您计划编写自己的WordPress主题和插件.使用本指南,您将确切地了解如何正确编写功能以及如何选择激活它们的方法.

2
订阅评论
提醒
0 评论
内联反馈
查看所有评论