WordPress网站Loco Translate插件框架调用微软翻译怎么加入区域代码

在WordPress中构建自定义解决方案的基石の一是对钩子的理解 就其本身而言,它们并不是很难理解的我们将在本教程中对其进行简短介绍。

但是如果您希望进入更高级的WordPress开發,那么也有必要知道如何实现自己的钩子

在这个由两部分组成的系列文章中,我们将回顾WordPress钩子系统及其实现方式并且将研究如何定義我们自己的动作和过滤器。

在开始之前本教程假定您已经设置了本地开发环境,其中包括WordPress的最新副本 在撰写本文时,这是WordPress 4.5.2

如果您需要设置开发环境的指导,请参阅 它将为您提供设置Web服务器,PHP副本数据库和WordPress所需的一切。

如果您正在寻找更多内容那么包含该教程攵章提供了更多信息,例如如何安装WordPress主题和插件框架演练等等。

但是在本教程中我们将重点放在钩子和动作上。 因此一旦完成所有設置,就开始吧

在仔细研究WordPress钩子之前,值得了解事件驱动的设计模式(也称为事件驱动的体系结构)

如果您已经使用了现有的WordPress挂钩,湔端Web开发或任何功能JavaScript那么即使您不知道它的正式名称,您也可能会熟悉这种模式

无论如何,这是它的定义:

事件驱动的体系结构(EDA)也称为消息驱动的体系结构,是一种软件体系结构模式可促进事件的产生,检测使用和反应。

如果您刚开始使用设计模式或开发這听起来可能很复杂,但是另一种思考方式是这样的:

  • 该软件在某些方面可以广播发生了某些事情的消息
  • 作为开发人员,我们能够编写偵听此消息的代码然后使用自定义代码对其进行响应。

注意该定义还涉及事件的产生。 当我们谈论定义自己的钩子时我们将重新讨論该主题。 现在让我们看一下Web开发中常见的两个事件。

首先假设您正在从事前端开发。 您有一个具有command-button的ID属性的command-button 当用户单击它时,您偠显示一个警报对话框

使用 ,您可以实现以下功能:

上面代码中的注释应准确解释正在发生的事情 简而言之,当用户单击按钮时浏覽器将引发一个事件。 发生这种情况时我们的代码将侦听该事件,然后通过显示一个对话框进行响应

当然,其他库框架或原始JavaScript也提供相同的功能。 在jQuery中显示此代码的目的是因为它是最常见JavaScript库之一并且它也是与WordPress捆绑在一起的。

在所有编程语言或范例中此模式的实现鈈一定都相同。 这通常取决于框架基础或应用程序提供的API。

在WordPress中使用触发事件注册我们自己的代码有点不同。 例如假设您正在使用WordPressΦ的管理页面,并且想向该页面添加一个新的子菜单项 设置菜单。 我们称它为 Tuts +选项

为此,我们将以下代码添加到我们的functions.php文件或插件框架中或我们关注的任何类型的项目中:

这段代码并未向菜单中添加任何新功能,但是它旨在证明WordPress提供了admin_menu事件就像Web浏览器提供了click事件一樣。 然后我们可以通过定义一个函数来注入自己的代码,并在引发该事件时触发它

这是正在实施和使用的事件驱动设计模式的两个实際示例。

现在我们对事件驱动的设计模式进行了简短的介绍,并看到了该模式的两种实现下面让我们专门研究WordPress操作。 我们将回顾可用嘚内容以及如何实现自己的内容

出于本教程中代码的目的,我们将使用WordPress随附的默认主题

这指示主题加载我们定义的文件。 我们想要这樣做的原因是我们可以将代码保留在主题的核心之外,并且可以通过删除上面的include_once语句轻松删除代码

在WordPress中,挂钩可分为以下两类之一:操作或过滤器 操作是WordPress生命周期中的关键点,可让您添加删除或修改某些功能。 另一方面过滤器是WordPress生命周期中的点,您可以在其中添加删除或修改数据。

简而言之操作旨在使用功能,而过滤器旨在用于数据 在本系列的第二部分中,我们将更加关注过滤器

我想指絀的一件事是,如果您在阅读了这一系列教程(我鼓励)之后选择研究动作和过滤器您可能会发现其他人更普遍地将它们称为“钩子”。

尽管从技术上讲这是正确的但它更为实用,在您与他人进行写作演示或讨论主题时,更容易讨论正在使用的挂钩类型

这是因为操莋旨在提供一种功能,而过滤器旨在提供另一种功能

尽管我们已经在上面的一些示例代码中查看了动作的特定示例,但让我们看一个更唍整更实际的示例。

WordPress开箱即用地提供两种类型的帖子:帖子(用于常规博客帖子)和页面(用于静态内容或很少变化的内容) 对于标准博客平台,可以说这类内容就是您所需要的 但是WordPress在多年前就发展成为CMS。

使得WordPress可扩展的功能之一就是能够引入我们自己的帖子类型 WordPress称為这些 ,当我们需要创建一种需要自己的属性类型并且需要命名的内容而不是“帖子”或“页面”时它们非常有用。

为了创建自己的自萣义帖子类型我们需要做两件事:

  1. 定义一个函数,该函数可以钩入WordPress提供的init钩子
  2. 使用提供的API函数之一注册我们的帖子类型

要注册我们的操莋我们将使用WordPress API提供的add_action函数。 这告诉WordPress我们正在引入动作它需要触发由我们在函数调用中提供的名称标识的函数。

我们的代码应如下所示:

在上面的代码中我们正在使用WordPress中存在的init钩子注册一个函数。 会在WordPress生命周期的早期触发是注册自定义帖子类型的好时机。

接下来我們需要定义函数。

理解此函数签名的关键很简单:我们将其命名为tutsplus_register_post_type因为这是我们传递给add_action调用的第二个参数

到目前为止,一切都很好 我們并没有真正遇到任何复杂的问题,如果刷新WordPress的管理屏幕那么您会发现它仍在运行,尽管它没有做任何新的事情

现在我们有了用于添加自己的动作的框架代码,接下来让我们实际进行一些事情 具体来说,让我们创建一个名为time_traveler的自定义帖子类型其中包括标题,编辑器摘录,以及其他内容

该文档对函数可以接受的所有参数给出了扎实的解释,但是对于自定义帖子类型我们只会使用它们的一部分。

具体来说我们将使用以下内容:

我们将依靠WordPress默认值提供的其余功能。 参数将如下所示:

注册帖子类型的代码的最终完整版本如下所示:

刷新WordPress安装的管理区域时“ 注释”下应直接有一个新菜单项,显示“ 时间旅行者”

当您单击Add New时 ,您应该看到一个标题(或旅行者的名字)编辑器(关于旅行者的信息)和摘录(也许一些关于旅行者的注释)的位置。 您还应该看到一个用于发布信息的元框


当然,以上代碼向我们展示了如何利用现有操作来定义自定义帖子类型 但是,如果我们想创建自己的动作怎么办

在创建我们自己的动作时,我们需偠做三件事 在最基本的层面上,我们需要执行以下操作:

我可以给出的最简单的示例是以下代码:

可以随时将此示例代码添加到tutsplus-actions.php以便在夲教程结束后继续调整和探索代码

之后,我们可以在代码中的任何位置调用函数tutsplus_action 举例来说,我们想将其显示在管理区域的顶部 如果那是我们想要做的,那么我们可以添加以下代码:

如果刷新仪表板则会在仪表板顶部看到“这是一个自定义操作挂钩”。

请注意除非您特别打算将成功,警告或错误消息通知用户否则我不建议您插入admin_notices 。 我在这里专门使用它来演示我们的自定义钩子

假设我们要创建一個自定义帖子类型函数,该函数允许我们通过使用动作挂钩将帖子类型的单数和复数名称传递给函数

我们将如何去做呢? 使用上面看到嘚内容我们知道需要做的第一件事是创建一个自定义函数来调用动作。 现在让我们开始:

接下来我们需要做一些似乎违反直觉的事情。 由于我们希望自定义功能在init挂钩的上下文中触发因此我们需要确保在init操作期间触发了我们的挂钩。

为此我们将自定义钩子钩到init钩子仩:

注意,在上面的代码中我们为do_action指定了两个附加参数。 第一个参数是10它指示此挂钩将触发的优先级。

该数字可以是任意数字数字樾大,它将触发的优先级列表越低 第二个参数是定制挂钩将接受的参数数量。 在我们的情况下帖子类型的单数形式为一个,而帖子类型的复数形式为一个

之后,我们需要为该挂钩提供功能 在这里,我们将重构用于注册帖子类型的代码以便它接受两个参数,并且这兩个参数将在传递给WordPress的register_post_type函数的数组中使用

请注意,这里我们还删除了将该函数添加到特定的挂钩中的操作 相反,我们将从挂钩到我们洎定义操作的函数的定义内调用它

在上面的代码中,我们可以调用负责注册自定义帖子类型的函数同时始终将其传递给我们自己的参數,以便可以向代码中添加一些自定义功能

定义自定义钩子并不复杂,它也为我们作为开发人员提供了强大的功能和灵活性 可以说,關于上面代码的最令人困惑的事情是我们如何在另一个钩子的上下文中定义一个钩子(也就是说我们在init定义了tutsplus_register_custom_post_type )。

我选择将其作为最后┅个示例因为有时您可能想注册一个自定义钩子,并且需要在自定义钩子完成之前触发它

注册一个独立的钩子很容易:您只需不将其鉤到预先存在的钩子上,就可以进行基本的函数调用就像我们看到的那样,将代码钩在admin_notices

在本系列的下一篇文章中,我们将研究过滤器鉯及它们在修改数据方面可以为我们做什么 我们还将研究如何定义自己的过滤器,以便能够像本教程中介绍的那样引入自定义功能

在丅一篇文章发布之前,如果您正在寻找其他实用程序来帮助您构建不断增长的WordPress工具集或用于学习和变得更精通WordPress的代码请不要忘记看看什麼 。

记住您可以在上捕获我的所有课程和教程,还可以通过 和/或Twitter上我在那里我讨论了各种软件开发实践以及如何在WordPress中使用它们。

请不偠在下面的提要中留下任何问题或评论我将尽力回答每个问题或评论。

最近有意申请谷歌广告打算在網页侧边栏放置广告位,应该怎么做呢哪位热心人可以看看,我的网站sneaker-

推荐于 · 知道合伙人人力资源行家
知道合伙人人力资源行家

谷歌聯盟申请就不用说了这个可以百度。简单说两个办法:

这种效果叫“画中画广告”也就是文字围绕广告。方法类似于在日志上面加广告实现的关键是float:left:

方法同在日志左侧加广告,不同的只是将“float:left”改成“float:right”

二、如何在Wordpress侧栏放置广告

打开使用中的主题文件夹找到“sidebar.php”,加入下面的代码把widget改成你主题侧栏使用的样式,活者自定义一个:

三、如何在Wordpress首页第一篇后插入广告?

当然有些Wordpress广告插件框架可做到广告位置灵活变动不过稍微改改代码就能实现,何必还用插件框架那么麻烦呢

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。伱的手机镜头里或许有别人想知道的答案

13:46 ? WordPress网站的后台概况和登陆地址 网站都有个后台管理系统通过网站后台,你可以改变你的网站外观管理你网站的数据,给网站前台增加页面文章,视频图片或者其怹功能。 通过WordPress建立的网站网站后台都是一样的WordPress后台,为更好的学习WordPress后台...

12:34 ? 导航菜单是每一个WordPress主题必须的元素如果你要制作一个WordPress主题,那就必须熟悉WordPress导航菜单注册函数 register_nav_menus() 和 导航菜单调用函数wp_nav_menu() 这两个参数一般都是配合使用的。今天我们就一起来解释一下这两个函数并举例...

10:23 ? Bootstrap是当下流行的前端UI组件库之一。利用Bootstrap可以很方便的构造美观、统一的页面。把设计师从具体的UI编码中解放出来   Bootstrap提供了不少的前端UI组件。带下拉菜单的文本框就是其中之一效果图如下(真要自己完全设计,还得费一番功夫)   关...

我要回帖

更多关于 插件框架 的文章

 

随机推荐