白银建站:WordPress插件开发基础研究

对于白银建站WordPress的构建方式,它可以通过其插件生态系统进行无休止的扩展,这是值得称赞的。

然而,插件有时会受到不好的抨击。任何使用WordPress超过5分钟的人都会发现,有一段时间,他们会因为很多问题而抱怨某个特定的插件。

但让我们明确一点:插件不是问题所在。问题在于糟糕的代码和糟糕的开发实践-任何值得开发人员都应该处理的问题。

考虑到以上所述,在本文中,我想重点介绍插件开发的基础知识。本文旨在为新手开发WordPress插件提供一个很好的入门,同时也提醒更有经验的开发人员注意最佳实践。

我们开始吧!

我应该使用插件还是替代?

考虑到代码可以在插件或主题中实现,您可能经常会发现自己对正确的操作方式感到疑惑。您的代码是应该进入插件,还是更合适的替代方案?

知道你代码的目的

通常,白银建站如果要添加的新功能表示对主题设计的更改,则应将其添加到儿童主题。另一方面,如果预期的功能引入或更改功能,则通过插件。

也就是说,在功能和设计之间并不总是有明确的界限。在这种情况下,一个更简单的方法是考虑在您决定切换网站的设计/主题时是否愿意保留新的功能,这就引出了我们的下一个观点。

插件与主题无关

添加到子主题的任何代码在切换主题时都会消失。挽救你添加的所有这些小代码肯定会很麻烦。在一些情况下,这很难找到,发现那些代码。

这是插件比通过子主题和/或Functions.php档案。您的代码将与您一起使用,并可与新主题一起部署。重要的是,用户能够切换设计,而不担心任何功能损失。不需要这个功能?只需关闭插件。

您可以轻松地缩放插件。

插件很擅长划分代码。您可以得到一段很好的代码,这些代码可以很容易地修改和缩放,以满足您的需要。它本身比将代码放入Functions.php文件和生活在恐惧中“白屏死亡“您保存更改的那一刻。

插件可以是超级简单的你好多莉-或复杂到足以在你的网站上带来彻底的变化-比如吴商因此,可伸缩性确实变得非常重要。

通过插件部署功能还有一个隐藏的好处:您可以释放你的插件更大的WordPress社区,甚至可能在未来将其商业化。

你能有太多的插件吗?

插件对你的WordPress网站来说是一个“坏”的神话,并不是因为插件固有的缺点,而是因为这些信念似乎已经成为了一个都市传奇。

让我们快速看看与插件相关的一些神话:

  • 主题中的代码比

    插件中的代码.

  • 插件减慢你的网站。
  • 插件是资源占优势的。

那里能,会,可以说实话,这不应该让你气馁。由主题或插件执行的代码块之间没有区别,除非(在某些情况下)计时。插件通常会加载它们相关的数据库、样式表和脚本。因此,将代码放置在主题!

问题通常是插件加载非必需的资源,或者加载资源,即使它们是不需要的。例如,您可能已经将您的社交共享插件设置为仅在permalink或单个POST页面上可见。然而,一些插件可能也会在索引页面上加载它们的资源,同时保持不可见性。或者,有些用户可能有多个用于共享的插件,从而为一个页面多次加载类似的资源。

在用户或开发人员处理插件的方式上,这是一个问题-它不是插件的问题本身.

换句话说,插件不会比其他地方的代码占用更多的资源或时间;问题是在WordPress插件开发过程中,错误的代码和错误的实践所导致的。

WordPress插件开发最佳实践

最佳实践是开发一个好插件的基石。就像让代码可读性对将来的开发是有利的一样,遵循最好的实践-调整插件并消除坏插件以后可能带来的麻烦。

不管您在插件上使用了什么技能,它都是最佳做法这将决定你的插件到底能有多好的表现。理想情况下,WordPress插件应该考虑以下最佳实践:

前缀

白银建站有一个唯一的标识符来使用您的插件(类似于WordPress使用的‘wp’)。每个文件、变量和函数都应该得到唯一的标识符。在大多数情况下,它可以是您的插件名称的首字母,或者您可以得到一些创造性-只要前缀是相关的和唯一的。

使用清洁文件夹结构

插件目录的根级不应包含其他文件。plugin-name.php以及(可选)卸载文件。其他的东西都进入了相关的目录。JavaScript进入‘js’目录,图像进入‘图像’目录,依此类推。

为扩张让路

如果您打算扩展插件的功能,开发插件体系结构的方式可以为将来的更改留出空间。简单的插件可能不需要这一点,但是如果您设想了未来开发的范围,那么就可以将您的插件架构放在前面。

不要在没有调试模式的情况下编写插件

当您开始编写插件时,首先要做的是打开调试模式。WordPress在开发时会引发错误,但是如果调试模式没有活动来标记错误,您就无法知道这一点。

作为另一个优势,调试模式使您能够使用最新的WordPress功能。随着所有更改和更新的不断进行,可能无法将选项卡保留在新函数或不推荐的函数上。

若要启用调试模式,请转到WP-config.php文件(更改前的备份!)在WordPress根目录中找到以下行:

define('WP_DEBUG', false);

这一行需要改为:

// Switch on debugging

define('WP_DEBUG', true);

// Direct WordPress to the debug log file /wp-content/debug.log file

define('WP_DEBUG_LOG', true);

// PHP 'display_errors' variable is not forced

define('WP_DEBUG_DISPLAY', false);

// Stops errors from being displayed onscreen

@ini_set('display_errors', 0);

就这么简单!

操作和过滤器解释

通过使用WordPress钩子修改代码并与代码交互。有两种挂钩:

1。行为

简单地说,行动代表已经发生的事情。它们可以用于添加功能或改变WordPress的操作方式。WordPress在某些点或某些事件发生时调用动作。

操作可用于多种目的,例如修改WordPress仪表板,或者,如下面的示例所示,向工具栏添加自定义文本和URL:

add_action( 'wp_before_admin_bar_render', 'wwtp_modifying_toolbar_example' );

function wwtp_modifying_toolbar_example() {

    global $wp_admin_bar;

    $wp_admin_bar->add_node( array(

        'id'    => 'site-developer',

        'title' => 'Reach out to the Website Developer',

        'href'  => 'https://www.elegantthemes.com/,

        'meta'  => array( 'target' => '_blank' )

    ) );

}

注意使用污水处理厂作为前缀,简单地作为一个唯一的前缀来设置代码以达到良好的实践效果。

WordPress Plugin Development - Using action on toolbar

WordPress代码库有一个行动清单可以用来对WordPress进行更改。

2。滤光片

过滤器是与数据交互的钩子;当数据从数据库流向浏览器或反过来,它们可以管理和更改数据。例如,考虑浏览器请求发布的场景。当WordPress将文章转移到浏览器时,它将应用任何已添加的筛选器。

您可以使用过滤器来清理网页的永久链接。在这里的示例中,我将删除从permalink-一个很好的方法,以摆脱停止字。

add_filter( 'sanitize_title', 'wwtp_remove_of_stopword' );

function wwtp_remove_of_stopword( $title ) {

    $title = str_replace( '-of-', '-', $title );

    $title = preg_replace( '/^of-/', '', $title );

    return $title;

}

再说一遍,WordPress代码是保存自己的一个很好的资源。关于过滤器的信息.

如何创建自己的插件(基础)

现在我们白银建站已经掌握了WordPress插件开发中的概念,我们可以完成创建插件的步骤。

您需要做的第一件事是决定插件的名称和要使用的唯一前缀。

导航到目录WP-内容/插件并创建一个以插件命名的文件夹。为了我们目前的目的,让我们称之为mytestplugin.

插件的目录现在可以承载插件所需的PHP文件;让我们给它命名WWTP_mytestplugin.php。记住-遵循最佳实践-如果有更多的文件,它们应该进入特定的目录。理想情况下,只有一个文件应该停留在根级别。

现在我们需要告诉WordPress,我们的小文件代表了一个插件。我们将向文件中添加一些参数,以便WordPress知道它正在处理一个插件:

<?php

/**

* Plugin Name: My Test Plugin

* Plugin URI: http://add_your_uri_here.com/

* Description: Tell the world what your plugin wants to achieve.

* Version: 1.0 adding a version is always handy.

* Author: Your name

* Author URI: If your personal website is different than the plugin website, it goes here.

* License: A license name

*/

瞧!WordPress知道你有一个插件。

WordPress Plugin Development - Activated test plugin

既然WordPress知道了我们的插件,让它做点什么怎么样?让我们给邮政编辑留个口信吧。只需将此代码添加到上一组之后,插件就可以运行:

add_filter( 'the_editor_content', 'wwtp_adding_text_notes' );

function wwtp_adding_text_notes( $content ) {

    // Only add this text if the box is empty. We don't want to mess up drafts!

    if ( empty( $content ) ) {

        $template  = 'Hey let us start writing...' . "\n\n";

        $template .= '<ul><li>Add useful text</li><li>Make good use of images</li><li>And don\'t forget the alt text!</li></ul>' . "\n\n";

        return $template;

    } else

        return $content;

}

下面是我们的插件在运行中的样子:

WordPress Plugin Development - Test Plugin Result

现在您已经了解了WordPress插件开发的基本知识,您可能需要尝试一些更高级的东西。安迪的文章开发WordPress插件是一个很好的地方开始您的旅程,以创建更复杂的插件。

结语

白银建站了解WordPress插件开发的基本知识,对此CMS的每个用户都是有益的。一旦您接受了插件的强大功能,并放弃了对这些非常有用的代码的疑虑,添加功能就会容易得多。

只要遵循最佳实践,保持插件的整洁和健康,您就可以享受由此带来的可伸缩性和灵活性。您并不总是需要为您的需要找到一个插件;您可以自己处理简单的任务。

现在,您了解了将自定义功能添加到站点并保持其主题独立性的基本知识。不要担心插件的数量,你可以添加-使用多少你喜欢,但保持你的重点在高质量的插件。