创建 WordPress 插件比您想象的要容易
已发表: 2014-06-10Beaver Builder 产品 25% 折扣!快点促销结束...精益更多!
直到几年前,我还没有编写过任何 WordPress 插件。我为客户创建和定制了许多主题,但出于某种原因,我不断告诉自己创建插件超出了我的能力。
事后看来,我大错特错了。
如果你曾经有过这样的感觉,让我告诉你一件事。创建 WordPress 插件并不超出您的能力范围。任何有足够技能编写基本 PHP 和修改主题的人都可以创建插件。
这就是我启动 Beaver Builder 插件的方式(它是免费的,因此您可以尝试一下)以及您也可以如何启动您的插件。
如果您像我一样,您可能一直在向主题添加功能而不是创建插件。在很多情况下这样做是可以的,但也有一些情况下,将自定义功能添加到插件中会更好。你为什么会问?
考虑这种情况。
您已向主题添加了将默认头像更改为您自己的自定义头像的功能。唯一的问题是,您刚刚更改了主题,但现在主题消失了。如果您已将该代码添加到插件中,当您决定切换主题时它仍然会在那里。
我们在 Tabata Times 多站点网络中遇到了这个问题。他们使用一些需要共享自定义功能的主题。您认为我们如何解决这个问题?您猜对了,通过将大量功能添加到插件中,以便网络上的所有站点都可以使用它,无论它们使用哪个主题。
不要将自己锁定在一个主题中。使用 #WordPress 插件来代替功能。分享到 X我不是在开玩笑。您可以通过五个简单的步骤创建 WordPress 插件。让我向您展示如何...
您需要做的第一件事是使用您选择的 FTP 程序(我的是 Coda)通过 FTP 访问您的站点。如果您不熟悉 FTP,我建议您在继续之前先阅读一下。
通过 FTP 访问站点后,您需要导航到 WordPress 插件文件夹。该文件夹几乎总是位于 /wp-content/plugins。
现在您已位于插件文件夹中,是时候为您的插件创建一个文件夹了!继续创建一个新文件夹,使用小写字母和破折号为其指定一个唯一的名称,例如 my-first-plugin。完成后,输入新文件夹并继续下一步。
接下来,您需要为插件创建主文件。为此,请在新插件文件夹中创建一个 PHP 文件,并为其指定相同的名称,例如 my-first-plugin.php。完成后,打开插件的主文件并准备进行一些编辑。
最后,将下面的插件信息复制并粘贴到您的主插件文件中。请务必编辑与您的插件相关的详细信息,例如插件名称和插件 URI。
<?php /** * Plugin Name: My First Plugin * Plugin URI: http://www.mywebsite.com/my-first-plugin * Description: The very first plugin that I have ever created. * Version: 1.0 * Author: Your Name * Author URI: http://www.mywebsite.com */
就是这样!您刚刚完成了创建 WordPress 插件所需的最少步骤。您现在可以在 WordPress 管理员中激活它并享受您所有的荣耀。
此时,您可能想知道这个插件应该做什么。嗯,它没有任何作用!我说过我会向您展示如何创建一个插件,但我并没有说我会向您展示如何创建一个可以执行任何操作的插件。
开个玩笑吧,这篇文章的目的是说明开始创建 WordPress 插件是多么简单。按照上述步骤进行操作,您就可以开始让事情发生了。
现在您已经有了一个插件,让我们让它做一些事情。
在 WordPress 中实现目标的最简单方法是使用操作和过滤器。让我们通过创建一个简单的操作来探索这一点,该操作在您网站上的所有帖子下方添加一行文本。复制此代码并将其粘贴到您的主插件文件中(位于插件信息下方)并保存。
add_action( 'the_content', 'my_thank_you_text' ); function my_thank_you_text ( $content ) { return $content .= '<p>Thank you for reading!</p>'; }
此代码挂钩到 WordPress 为您的网站呈现帖子内容时触发的“the_content”操作。当该操作触发时,WordPress 将调用在“add_action”调用下方定义的“my_thank_you_text”函数。
如果您已经做到了这一步,希望我们一致认为创建一个简单的 WordPress 插件相对容易。但是,如果您想创建一个不仅仅完成一项简单任务的插件怎么办?
如果您要开始编写自己的插件,我强烈建议您熟悉操作和过滤器的工作原理以及哪些可供您使用。 WordPress Codex 是我花费大量时间的地方,我建议您也这样做。
插件 API:操作和过滤器
插件 API:操作参考
插件 API:过滤器参考
同样,在开发插件时,我花了很多时间在 WordPress Codex 上阅读核心功能。核心功能如此之多,我不希望您知道它们的每一个是什么以及它们的作用。毕竟,这就是 Codex 的用途,所以请使用它!
最后,如果您最终创建了一个可以做一些漂亮事情的插件,您可能需要创建一个选项页面,以便使用它的人可以修改功能。创建选项页面不是必需的,有许多插件可以在没有选项页面的情况下安装和执行某些操作,但是拥有一个选项页面对于插件的用户来说可能是一个很好的补充。
创建选项页面超出了本文的范围,因此我将再次将您交给 WordPress Codex。
编写插件
创建选项页面
创建 WordPress 插件是一种非常自由的方式,也是深入了解 WordPress 工作原理的好方法。如果您还没有,我强烈建议您尝试创建一个插件。如果您这样做并想出了有时有用的建议,请不要忘记您可以通过 WordPress 插件目录将其免费分发给其他人。
您是否已经创建了第一个插件或计划很快创建一个?如果是这样,我很想在下面的评论中听到它!
一篇鼓舞人心且激动人心的文章。
尤其是对我来说,就像你提到的自己一样害怕 WordPress 的代码方面。
我非常喜欢并使用 WordPress。
当需要添加一些功能时,我会选择插件
但正如您提到的,这些插件缺少一些功能来满足我的所有需求。
所以我被阻止进一步推进我的项目。因为我无法对代码进行必要的修改。
因此,我真的很期待能够应对 WordPress 的 Codex,并在项目中找到出路。
再次感谢您提供鼓舞人心和激励人心的内容。
好的。足以快速启动
多好的文章啊!另一个关于将 html 模板转换为 WordPress 主题怎么样?
这非常有帮助!谢谢
对于像我这样有同样恐惧症的人来说,这是非常有用的破冰船!谢谢。
哇!非常感谢,我现在可以编写插件了。一直想知道那些人是怎么写的,从来不知道这么简单!我的疑虑已经解开。
我一直认为子主题是解决这个问题的最佳方法,但可惜的是,如果我更改父主题,我就会失去功能。这很有意义。谢谢你!
是的!你让我明白了“我并没有说我会向你展示如何创建一个可以做任何事情的插件。 ”
教导用户并保持用户参与度的好方法!
我现在正在向我的插件添加管理界面......非常感谢!
我认为您可能缺少 PHP 结束标记:?> 感谢您的教程!
如果文件仅包含 PHP 代码,则最好省略文件末尾的 PHP 结束标记。这可以防止在 PHP 结束标记后意外添加空格或新行,这可能会导致不必要的影响,因为当程序员无意在脚本中的该点发送任何输出时,PHP 将开始输出缓冲。
有趣的。我读过的其他教程包括结束标签,所以我只是认为这是一个错误,但你是完全正确的。
谢谢
感谢您为我们所有 WP 新手写的这篇文章,我可以问一个愚蠢的问题吗?如果我将我的子主题的 function.php 中的 PHP 代码添加到新插件的主 php 文件中,它将执行相同的操作,但它将是独立的从主题出发吧?谢谢
在仔细阅读了您的整篇文章后,我创建了我的第一个 WordPress 插件。感谢大佬分享您的宝贵信息。
不错的帖子,对我来说是有用的提示。感谢分享。
感谢这篇精彩的文章,它增强了我接触 WordPress 代码和创建自己的插件的信心。
您好,感谢您提供的信息
上面代码中是add_action还是add_filter?
据我所知,“the_content”是一个过滤器而不是一个操作。因此,您应该使用 add_filter 而不是 add_action
很棒的帖子。但代码中有一个小错误。您必须使用 add_filter 而不是 add_action,因为 the_content 是一个过滤器。
多谢!非常有帮助
你好,
我已经了解了您的教程,并且对制作插件有了一些想法。我觉得这对每个人来说都是一篇不错的文章,对初学者来说也是多产的。可能会有更多收获,希望你能帮助我。
出色的!这是一种非常简单方便的 WP 插件开发方法,我喜欢它。
我将为我的 WP 创建一个计算器插件,但我无法在网上找到它。
感谢分享
我可以对 WordPress 5.3.x 使用此步骤吗?
您好,感谢您提供基础知识,正如大多数人所说,但按照建议查看了 WordPress,我找不到“如何添加”“查看详细信息”页面。你知道有多少人在使用它、星级评定等。有关此主题的链接或帖子会很好。
谢谢
这真是哇!我认为创建一个插件会让我付出天上和地上的代价。
感谢您的精彩帖子
非常感谢我所需要的!
这太棒了,当有人试图决定我是否想进入插件开发时,这真的很有帮助。
今天我构建了我的第一个插件。感谢您的灵感
这是很棒的文章!刚刚使用 BB 模块使用过滤器制作了一个快速插件。呜呼!
我还没有创建插件,但我确实定期为主题创建自定义内容。什么时候适合使用插件,什么时候你会建议不要使用插件?
我正在考虑我想将当前主题的哪些部分分解为插件以帮助进行版本控制。
我不想在网站中激活大量插件,但也希望在明智的情况下实现插件,并且我对您对此的想法感兴趣。
好一个。
我原以为创建 WordPress 插件是一项非常困难的任务,但读完这篇博客后我的想法完全改变了
谢谢。
完美的帖子!我真的很喜欢你简单而完美的信息。非常感谢您的精彩分享。我会花很多时间在 Codex 上学习您的技巧。再次感谢
真是太棒了。这对所有使用 WordPress 的博主都有帮助。
很棒也很鼓舞人心