主题和插件之间的区别?


9

我很好奇主题和插件之间的具体区别是什么。我的要点是...主题与外观(html / css)有关,插件与添加功能(代码/ php)有关。但是,像受Twitter启发的流行P2这样的主题似乎增加了功能……不只是增强外观。这让我有些困惑。这次摇滚交流的人能启发我吗?

非常感激。

埃迪

Answers:


13

主题管理博客的显示和布局,但也可以添加功能。

插件为您的博客添加了功能,但也可以向布局添加元素。

两者之间有很多交叉,特别是当您将某些插件与主题捆绑在一起时。但是,最大的区别在于您的网站使用的模板。

主题

主题定义用于每个页面的模板。通常,index.php主题几乎用于所有内容。您可以拆分出来,并创建一个单独的header.phpfooter.php也。然后,您可以添加一个sidebar.php。我敢肯定,您之前至少看过这四个文件-一个用于定义页眉,一个用于定义侧栏,一个用于定义页脚,以及一个将它们放在一起并将它们放置在主要内容周围的文件。

此外,您可以定义single.php为单个帖子page.php设置样式,为单个页面设置样式,等等。

当您的网站加载并请求页面或帖子时,WordPress将请求路由到您的主题定义的模板文件。然后,它知道如何在页面上布置内容。传统上,主题用于布局。

外挂程式

另一方面,插件可以添加主题和其他地方要使用的其他元素。插件可以添加Facebook Like按钮,然后您的主题可以添加到帖子和页面。 另一个插件可以将小部件添加到您的管理控制台中,以访问和管理您的Google阅读器供稿-这不会反映在您的网站布局中,但是确实可以添加功能。每当您发布新帖子时,另一个插件可以自动将其发布到Twitter。

主题可以添加与您的网站布局和性能直接相关的功能。插件可以在WordPress中更深地添加功能-主题也可以使用的功能。


有点晚了,但是自定义子句和查询呢?它们是主题还是插件的一部分?
Manny Fleurmond 2011年

不确定自定义子句的含义,但是自定义查询将/应该由插件处理。如果您采用的是MVC方法,则可以将WordPress本身提供模型(和底层数据访问层),提供视图的主题以及提供控制器的插件(除了WordPress的某些部分)。
EAMann 2011年

上面可能的解释是主题定义页面,但是使用插件创建了单独的块和模板。这是不正确的,因为这意味着插件==模板部分,或者插件是窗口小部件模板,这是不正确的。您是否可以编辑答案以更清楚地知道插件是逻辑的,主题是标记/视觉的?
汤姆·J·诺维尔

2

试想一下!主题定义了整个网站的主要结构!主题类似于帖子,页面或自定义帖子类型,自定义页面等的结构。到目前为止,您知道主题实际上是HTML代码!在Wordpress执行结束时,它将HTML代码返回到浏览器,并为您显示浏览器!HTML是基于主题文件(index.php,header.php,footer.php,single.php)构建的

插件在输出到浏览器之前,使用hook&过滤器修改主题!

示例:如果要在帖子结尾添加社交按钮!您可以更改single.php并添加代码以在the_content()下方放置一些社交按钮!

但是您可以制作一个插件,以使用Wordpress的filter&hook更改帖子的HTML,为您添加社交按钮!

您可以使用钩子添加javascript,执行一些逻辑代码,然后基于该结果呈现HTML,然后通过Wordpress的hook&过滤器添加或替换为某些东西!

但是,如果将插件代码放在主题文件中会怎样?假设您将一些函数用于将内容呈现到主题的functions.php中!然后在主题的某个位置手动调用这些函数!甚至更好的是,您可以使用hook&filter自动更改内容,而无需手动调用主题!

因此,只要wordpress可以以某种方式包含您的代码并运行它!只要您的代码运行它,它就可以通过使用hook&filter为您做任何事情!一些简单的插件可以很容易地放入主题文件!但是有些大插件太过膨胀,无法放入主题文件!

然后,您决定删除该功能,转到主题文件并删除代码?听起来很蠢,对吧?所以我们有了插件,这是一种自动修改Wordpress的运行过程以更改内容,更改数据库,...的方法。

此外,在调用主题之前会运行一些挂钩,因此您不能将主题放入主题文件中!

结论:只要您的代码包含在wordpress中,wordpress就会运行它,然后返回结果!您可以将代码放在主题文件中,wordpress会为您调用!但是,如果将其打包为插件,则可以轻松安装/停用/删除而不更改任何主题文件!另外,您还可以保持主题简单/简洁!因此,当您需要更改某些内容时,请尽可能将其作为插件!不要将其放在主题文件中!


0

插件和主题之间的一些基本区别是:

  • 插件位于WordPress网站的wp-content / plugins目录中。主题可以在wp-content / themes目录中找到。

  • 任何WordPress网站都包含各种插件。但是,一个网站只有一个活动主题。

  • 如果要在网站上更改主题,则无法使用旧主题的功能。同时,安装新插件不会影响网站上的其他活动插件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.