我很好奇主题和插件之间的具体区别是什么。我的要点是...主题与外观(html / css)有关,插件与添加功能(代码/ php)有关。但是,像受Twitter启发的流行P2这样的主题似乎增加了功能……不只是增强外观。这让我有些困惑。这次摇滚交流的人能启发我吗?
非常感激。
埃迪
我很好奇主题和插件之间的具体区别是什么。我的要点是...主题与外观(html / css)有关,插件与添加功能(代码/ php)有关。但是,像受Twitter启发的流行P2这样的主题似乎增加了功能……不只是增强外观。这让我有些困惑。这次摇滚交流的人能启发我吗?
非常感激。
埃迪
Answers:
主题管理博客的显示和布局,但也可以添加功能。
插件为您的博客添加了功能,但也可以向布局添加元素。
两者之间有很多交叉,特别是当您将某些插件与主题捆绑在一起时。但是,最大的区别在于您的网站使用的模板。
主题定义用于每个页面的模板。通常,index.php
主题几乎用于所有内容。您可以拆分出来,并创建一个单独的header.php
和footer.php
也。然后,您可以添加一个sidebar.php
。我敢肯定,您之前至少看过这四个文件-一个用于定义页眉,一个用于定义侧栏,一个用于定义页脚,以及一个将它们放在一起并将它们放置在主要内容周围的文件。
此外,您可以定义single.php
为单个帖子page.php
设置样式,为单个页面设置样式,等等。
当您的网站加载并请求页面或帖子时,WordPress将请求路由到您的主题定义的模板文件。然后,它知道如何在页面上布置内容。传统上,主题仅用于布局。
另一方面,插件可以添加主题和其他地方要使用的其他元素。插件可以添加Facebook Like按钮,然后您的主题可以添加到帖子和页面。 另一个插件可以将小部件添加到您的管理控制台中,以访问和管理您的Google阅读器供稿-这不会反映在您的网站布局中,但是确实可以添加功能。每当您发布新帖子时,另一个插件可以自动将其发布到Twitter。
主题可以添加与您的网站布局和性能直接相关的功能。插件可以在WordPress中更深地添加功能-主题也可以使用的功能。
试想一下!主题定义了整个网站的主要结构!主题类似于帖子,页面或自定义帖子类型,自定义页面等的结构。到目前为止,您知道主题实际上是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会为您调用!但是,如果将其打包为插件,则可以轻松安装/停用/删除而不更改任何主题文件!另外,您还可以保持主题简单/简洁!因此,当您需要更改某些内容时,请尽可能将其作为插件!不要将其放在主题文件中!