Kinsta-博客中文翻译-九-
Kinsta 博客中文翻译(九)
原文:Kinsta Blog
在 JavaScript 中使用媒体查询的完整指南
大多数现代网站使用响应式网页设计技术,以确保它们看起来不错,可读,并在任何屏幕尺寸的设备上保持可用,如手机、平板电脑、笔记本电脑、台式电脑显示器、电视、投影仪等。
使用这些技术的站点只有一个模板,它可以根据屏幕尺寸修改布局:
- 较小的屏幕通常显示一个线性的单列视图,通过点击(汉堡包)图标来激活 UI 控件,如菜单。
- 更大的屏幕显示更多的信息,也许还有水平排列的侧边栏。诸如菜单项之类的 UI 控件可能总是可见的,以便于访问。
响应式 web 设计的一个重要部分是实现一个 CSS 或 JavaScript 媒体查询来检测设备尺寸,并自动提供适合该尺寸的设计。我们将讨论为什么这些查询是重要的,以及如何使用它们,但首先,让我们讨论一下响应式设计的一般情况。
为什么响应式设计很重要?
提供一个单页面布局并期望它在任何地方都能工作是不可能的。
当手机在 21 世纪初首次获得基本的网络访问时,网站所有者通常会围绕手机和桌面视图创建两到三个独立的页面模板。随着设备种类呈指数级增长,这变得越来越不切实际。
今天,屏幕尺寸多种多样,从微型手表显示器到 8 K 显示器甚至更大。即使只考虑手机,最近的设备也能有比很多低端笔记本电脑更高的分辨率。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
手机的使用也已经超过了台式电脑。除非你的网站有特定的用户群,否则你可以预期大多数人会通过智能手机访问它。小屏幕设备不再是事后才想到的,应该从一开始就考虑,尽管大多数网页设计者、开发者和客户继续使用标准 PC。
谷歌已经认识到移动设备的重要性。当网站在智能手机上可用且运行良好时,它们在谷歌搜索中的排名会更好。好的内容仍然是至关重要的,但是一个不能适应你的用户群屏幕尺寸的缓慢加载的网站可能会损害你的业务。
最后,考虑可访问性。一个适合所有人的网站,不管他们使用什么设备,都会吸引更多的观众。在许多国家,可访问性是一项法律要求,但即使你不在那里,也要考虑到更多的观众会带来更多的转化和更高的利润。
响应式设计是如何工作的?
响应式设计的基础是媒体查询:一种 CSS 技术,可以根据输出类型(屏幕、打印机甚至语音)、屏幕尺寸、显示纵横比、设备方向、颜色深度和指针准确度等指标应用样式。媒体查询也可以考虑用户偏好,包括简化的动画、亮/暗模式和更高的对比度。
我们展示的例子演示了仅使用屏幕宽度的媒体查询,但是站点可以更加灵活。详情请参考 MDN 上的全套选项。
媒体查询支持非常出色在浏览器中已经存在十多年了。只有 IE8 及以下不支持。他们会忽略媒体查询所应用的样式,但这有时会是一个好处(在下面的最佳实践部分阅读更多)。
使用媒体查询应用样式有三种标准方法。第一个在 HTML 代码中加载特定的样式表。例如,当设备的屏幕至少有 800 像素宽时,下面的标记加载 wide.css 样式表:
其次,可以使用一个@import at-rule 将样式表有条件地加载到 CSS 文件中:
/* main.css */
@import url('wide.css') screen and (min-width: 800px);
信息
注意应该避免使用@import,因为每个导入的 CSS 文件都是渲染阻塞的。HTML ``标签是并行下载的,而@import是串行下载的。
更典型的是,您将使用修改特定样式的@media CSS at-rule 块在样式表中应用媒体查询。例如:
/* default styles */
main {
width: 400px;
}
/* styles applied when screen has a width of at least 800px */
@media screen and (min-width: 800px) {
main {
width: 760px;
}
}
开发人员可以应用任何必要的媒体查询规则来调整站点的布局。
媒体查询最佳实践
当媒体查询首次被设计出来时,许多网站选择了一套严格固定的布局。这在概念上更容易设计和编码,因为它有效地复制了一组有限的页面模板。例如:
- 小于 600 像素的屏幕宽度使用 400 像素的类似手机的布局。
- 600 像素到 999 像素之间的屏幕宽度使用 600 像素宽的平板布局。
- 大于 1000 像素的屏幕宽度使用 1000 像素宽的类似桌面的布局。
这项技术有缺陷。在非常小和非常大的屏幕上的结果可能看起来很差,并且 CSS 维护可能是必需的,因为设备和屏幕大小会随着时间而改变。
更好的选择是使用移动优先的流体设计,该设计带有断点,以适应特定尺寸的布局。本质上,默认布局使用最简单的小屏幕样式,将元素放置在线性垂直块中。
例如,<main>容器中的<article>和``:
/* default small-screen device */
main {
width: 100%;
}
article, aside {
width: 100%;
padding: 2em;
}
以下是所有浏览器的结果——甚至是不支持媒体查询的非常旧的浏览器:
Example screenshot without media query support.
当支持媒体查询并且屏幕超过特定宽度(比如 500 像素)时,<article>和``元素可以水平放置。这个例子使用了一个 CSS 网格,其中主要内容使用大约三分之二的宽度,次要内容使用剩余的三分之一:
/* larger device */
@media (min-width: 500px) {
main {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 2em;
}
article, aside {
width: auto;
padding: 0;
}
}
这是大屏幕上的结果:
Example screenshot with media query support.
媒体查询备选方案
响应式设计也可以在现代 CSS 中使用更新的属性来实现,这些属性在本质上适应布局,而无需检查视口尺寸。选项包括:
calc、min-width、max-width、min-height、max-height以及更新的clamp属性都可以根据已知的限制和可用的空间来定义确定元素大小的维度。- 视口单元
vw、vh、vmin和vmax可以根据屏幕尺寸分数来调整元素的大小。 - 文本可以显示在 CSS 列中,这些列在空间允许的情况下出现或消失。
- 可以使用
min-content、fit-content和max-content维度根据子元素的大小来调整元素的大小。 - 当元素开始超出可用空间时,CSS flexbox 可以换行(或者不换行)。
- CSS 网格元素可以用比例分数
fr单位来调整大小。重复 CSS 功能可与minmax、auto-fit和auto-fill结合使用,以分配可用空间。 - 新的和(目前)试验性的 CSS 容器查询可以对布局中组件可用的部分空间做出反应。
这些选项超出了本文的范围,但是它们通常比粗糙的媒体查询更实用,后者只能响应屏幕尺寸。如果您可以实现一个没有媒体查询的布局,它可能会使用更少的代码,更有效,并且随着时间的推移需要更少的维护。
也就是说,有些情况下,媒体查询仍然是唯一可行的布局选项。当您需要考虑其他屏幕因素(如纵横比、设备方向、颜色深度、指针准确度)或用户偏好(如简化动画和亮/暗模式)时,它们仍然是必不可少的。
JavaScript 中需要媒体查询吗?
到目前为止,我们主要讨论了 CSS。这是因为大多数布局问题都可以——而且应该——在 CSS 中单独解决。
然而,在某些情况下,使用 JavaScript 媒体查询代替 CSS 是可行的,例如:
- 一个组件,如菜单,在小屏幕和大屏幕上有不同的功能。
- 在纵向/横向之间切换会影响 web 应用程序的功能。
- 基于触摸的游戏必须改变
<canvas>布局或调整控制按钮。 - web 应用程序遵循用户偏好,如暗/亮模式、减少动画、触摸粗糙等。
接下来的部分演示了在 JavaScript 中使用媒体查询或者类似媒体查询的选项的三种方法。所有示例都返回一个状态字符串,其中:
- 小视图=宽度在 400 像素以下的屏幕;
- 中等视图=宽度在 400 到 799 像素之间的屏幕;和
- 大视图= 800 像素或更宽的屏幕。
选项 1:监控视口尺寸
在媒体查询实施之前的黑暗日子里,这是唯一的选择。JavaScript 会监听浏览器的“调整大小”事件,使用window.innerWidth和window.innerHeight(或者旧 ie 中的document.body.clientWidth和document.body.clientHeight)分析视窗尺寸,并做出相应的反应。
这段代码将计算出的小、中或大字符串输出到控制台:
const
screen = {
small: 0,
medium: 400,
large: 800
};
// observe window resize
window.addEventListener('resize', resizeHandler);
// initial call
resizeHandler();
// calculate size
function resizeHandler() {
// get window width
const iw = window.innerWidth;
// determine named size
let size = null;
for (let s in screen) {
if (iw >= screen[s]) size = s;
}
console.log(size);
}
您可以在此查看工作演示。(如果使用桌面浏览器,请在新窗口中打开此链接,以便于调整大小。移动用户可以旋转设备。)
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
上面的示例在调整浏览器大小时检查了视区的大小;确定它是小、中还是大;并将其设置为 body 元素上的一个类,这会更改背景颜色。
这种方法的优点包括:
- 它适用于所有可以运行 JavaScript 的浏览器,甚至是古老的应用程序。
- 你捕捉到了准确的维度,并能做出相应的反应。
缺点是:
- 这是一项需要大量代码的老技术。
- 是不是太确切了?你真的需要知道什么时候宽度是 966px 对 967px 吗?
- 您可能需要手动将维度匹配到相应的 CSS 媒体查询。
- 用户可以快速调整浏览器的大小,每次都会重新运行处理函数。这可能会通过抑制事件而使较旧且较慢的浏览器过载。每 500 毫秒只能触发一次。
总之,除非您有非常具体和复杂的大小调整要求,否则不要监视视口尺寸。
选项 2:定义和监控 CSS 自定义属性(变量)
这是一种有点不寻常的技术,它在媒体查询被触发时改变 CSS 中自定义属性字符串的值。所有现代浏览器都支持自定义属性(但不支持 IE)。
在下面的示例中,在@media 代码块中,--screen custom property被设置为“小”、“中”或“大”:
body {
--screen: "small";
background-color: #cff;
text-align: center;
}
@media (min-width: 400px) {
body {
--screen: "medium";
background-color: #fcf;
}
}
@media (min-width: 800px) {
body {
--screen: "large";
background-color: #ffc;
}
}
可以使用伪元素在 CSS 中单独输出该值(但请注意,它必须包含在单引号或双引号中):
p::before {
content: var(--screen);
}
您可以使用 JavaScript 获取自定义属性值:
const screen = getComputedStyle(window.body)
.getPropertyValue('--screen');
不过,这还不是全部,因为返回值包含 CSS 中冒号后定义的所有空格和引号字符。该字符串将会很“大”,因此需要稍微整理一下:
// returns small, medium, or large in a string
const screen = getComputedStyle(window.body)
.getPropertyValue('--screen')
.replace(/\W/g, '');
您可以在此查看工作演示。(如果使用桌面浏览器,请在新窗口中打开此链接,以便于调整大小。移动用户可以旋转设备。)
该示例每两秒钟检查一次 CSS 值。它需要一点 JavaScript 代码,但是有必要对更改进行轮询——您无法使用 CSS 自动检测自定义属性值是否已更改。
需要一个给你带来竞争优势的托管解决方案吗?Kinsta 为您提供了令人难以置信的速度、一流的安全性和自动伸缩功能。查看我们的计划
也不可能将值写入伪元素并使用 DOM 突变观察器来检测变化。伪元素不是 DOM 的“真实”部分!
优点:
- 这是一种简单的技术,主要使用 CSS 并匹配真实的媒体查询。
- 可以同时修改任何其他 CSS 属性。
- 不需要复制或解析 JavaScript 媒体查询字符串。
主要缺点是不能自动对浏览器视口尺寸的变化做出反应。如果用户将手机从纵向旋转到横向,JavaScript 永远不会知道。您可以频繁地轮询更改,但这是低效的,会导致您在我们的演示中看到的时间延迟。
监控 CSS 自定义属性是一种新颖的技术,但是只有在以下情况下才实用:
- 布局可以固定在最初呈现页面的点上。一个售货亭或销售终端也是可能的,但是它们可能有固定的分辨率和单一的布局,所以 JavaScript 媒体查询变得无关紧要。
- 该网站或应用程序已经运行频繁的基于时间的功能,如游戏动画。可以同时检查自定义属性,以确定是否需要更改布局。
选项 3:使用 matchMedia API
matchMedia API 略有不同,但它允许您实现 JavaScript 媒体查询。从 IE10 开始,大多数浏览器都支持 T2。构造函数返回一个 MediaQueryList 对象,该对象具有一个 matches 属性,该属性针对其特定的媒体查询计算为 true 或 false。
当浏览器视区宽度为 800px 或更大时,以下代码输出 true:
const mqLarge = window.matchMedia( '(min-width: 800px)' );
console.log( mqLarge.matches );
“更改”事件可以应用于 MediaQueryList 对象。每次 matches 属性的状态改变时都会触发该事件:在先前为假(低于 800 像素)之后变为真(高于 800 像素),反之亦然。
将 MediaQueryList 对象作为第一个参数传递给接收处理程序函数:
const mqLarge = window.matchMedia( '(min-width: 800px)' );
mqLarge.addEventListener('change', mqHandler);
// media query handler function
function mqHandler(e) {
console.log(
e.matches ? 'large' : 'not large'
);
}
该处理程序仅在 matches 属性更改时运行。它不会在页面初始加载时运行,因此您可以直接调用该函数来确定开始状态:
// initial state
mqHandler(mqLarge);
当你在两个不同的状态之间移动时, API 工作得很好。要分析三个或更多的状态,比如小、中和大,就需要更多的代码。
首先定义一个带有相关 matchMedia 对象的屏幕状态对象:
const
screen = {
small : null,
medium: window.matchMedia( '(min-width: 400px)' ),
large : window.matchMedia( '(min-width: 800px)' )
};
没有必要在小状态下定义 matchMedia 对象,因为在小和中之间移动时会触发 medium 事件处理程序。
然后可以为中型和大型事件设置事件监听器。这些函数调用同一个 mqHandler()处理函数:
// media query change events
for (let [scr, mq] of Object.entries(screen)) {
if (mq) mq.addEventListener('change', mqHandler);
}
处理函数必须检查所有 MediaQueryList 对象,以确定小、中或大当前是否处于活动状态。匹配必须按大小顺序进行,因为 999px 的宽度将匹配中型和大型——只有最大的应该“赢”:
// media query handler function
function mqHandler() {
let size = null;
for (let [scr, mq] of Object.entries(screen)) {
if (!mq || mq.matches) size = scr;
}
console.log(size);
}
您可以在此查看工作演示。(如果使用桌面浏览器,请在新窗口中打开此链接,以便于调整大小。移动用户可以旋转设备。)
使用的示例有:
- CSS 中的媒体查询来设置和显示自定义属性(如上面的选项 2 所示)。
- matchMedia 对象中的相同媒体查询用于监视 JavaScript 中的维度变化。JavaScript 输出将在同一时间发生变化。
使用 matchMedia API 的主要优点是:
- 它是事件驱动的,在处理媒体查询更改方面非常高效。
- 它使用与 CSS 相同的媒体查询字符串。
缺点是:
- 处理两个或更多的媒体查询需要更多的思考和代码逻辑。
- 您可能需要在 CSS 和 JavaScript 代码中复制媒体查询字符串。如果不保持同步,这可能会导致错误。
为了避免媒体查询不匹配,可以考虑在构建系统中使用设计标记。媒体查询字符串在 JSON(或类似的)文件中定义,并且在构建时将值插入 CSS 和 JavaScript 代码中。
总之,matchMedia API 可能是实现 JavaScript 媒体查询的最有效和最实用的方法。它有些古怪,但在大多数情况下是最好的选择。
想知道响应式设计是如何工作的?👀JavaScript 媒体查询起着关键的作用...👩💻
摘要
内在的 CSS 尺寸选项越来越可行,但是对于大多数网站来说,媒体查询仍然是响应式网站设计的基础。它们总是需要处理更复杂的布局和用户偏好,比如亮/暗模式。
尽可能保持对 CSS 的媒体查询。当您别无选择只能进入 JavaScript 领域时,matchMedia API 为 JavaScript 媒体查询组件提供了额外的控制,这些组件需要额外的基于维度的功能。
对于实现 JavaScript 媒体查询,你还有其他的技巧吗?在评论区分享吧!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
Joomla 和 WordPress 哪个更好?(赞成和反对)
试图在 Joomla 和 WordPress 之间选择你的下一个网站?虽然有大量的理由使用 WordPress,但我们认识到 WordPress 并不是唯一一个帮助你建立网站的 T2 内容管理系统。
我们已经花了时间研究了 Drupal 与 WordPress 的对比,以及 T2 与 Squarespace 等托管解决方案的对比。现在,我们回来为 Joomla 做同样的事情。
我们将深入研究每个内容管理系统,让您更好地了解每个平台的优缺点。
而且,为了让这更有帮助,我们将遵循与我们的 Drupal 与 WordPress 对比完全相同的格式,这样你就可以很容易地比较所有三个平台。
Joomla vs WordPress:简介和数字说明什么
WordPress 和 Joomla 都是自托管、开源的内容管理系统,已经存在了 10 多年。

WordPress 最初于 2003 年作为一个博客平台推出,现在是一个多功能的内容管理系统,为互联网上超过 43.3%的网站提供动力不仅仅包括博客!)。就内容管理系统市场的市场份额而言,WordPress 占据了更大的 65.1%的市场份额。

Joomla 于 2005 年推出,几乎和 WordPress 一样古老。Joomla 是仅次于 WordPress 的第二大流行的内容管理系统,为互联网上 3%的网站提供支持,并占有内容管理系统市场的 5.4%。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。

CMS market share
虽然 Joomla 目前仍然保持着第二名的桂冠,但至少从 2010 年开始,其内容管理系统市场份额一直在萎缩,其网站市场的总体份额在 2017 年首次萎缩。
如果你看一下从 2004 年到现在“WordPress”和“Joomla”之间的谷歌趋势比较,你可以直观地看到这种趋势。直到 2010 年 WordPress 开始占据主导地位之前,Joomla 实际上一直处于领先或同等地位:

Joomla vs WordPress at Google Trends
总而言之——WordPress 仍在增长,而 Joomla 正朝着相反的方向缓慢前进。但是,这并不意味着 Joomla 没有什么可以提供的!
WordPress 和 Joomla 有哪些广为人知的优点?
如果你搜索 Joomla vs WordPress,你会发现两个阵营的开发者之间存在大量的意识形态之争。总的来说,您会从各个方面看到为什么一个平台是最好的一些主要原因:
WordPress 优势
- 易用性——WordPress 通常被认为是最容易使用的内容管理系统,尤其是对非开发者而言。
- 更适合写博客–WordPress 包含了开箱即用的“博客文章”和“静态页面”的区别,而 Joomla 只包含了一个“文章”类型,你可以用类别来操作。
- 可扩展性——WordPress 拥有迄今为止最大的生态系统,包括 WordPress 插件和 WordPress 主题,这使得用各种不同的功能扩展你的网站变得容易。
- 巨大的支持社区——因为 WordPress 如此受欢迎,通过博客、脸书团体和开发者的庞大第三方生态系统很容易找到帮助。
- 更低的开发成本–这个巨大的社区也意味着你通常可以以更低的成本完成开发工作。
Joomla 优势
- 更高级的用户管理–Joomla 提供了一个开箱即用的更高级的用户访问控制和用户管理系统。
- 灵活适应不同的内容类型–Joomla 的组件和模块为您显示非标准内容类型提供了更多的灵活性。
- 多语言支持–Joomla 的核心内置了多语言支持,而 WordPress 则要求你使用第三方插件。
- 多种模板–Joomla 允许你为不同的内容使用不同的模板,然而你只能使用一个 WordPress 主题。
使用 WordPress 和 Joomla 有多容易?
虽然 Joomla 比 Drupal 更适合初学者,但 WordPress 仍然是创建网站最简单快捷的方式。
WordPress 易用性和学习曲线
如果你只是在创建一个有静态内容和/或博客的“常规”网站,有可能在几个小时内就能创建并运行一些看起来不错的东西。
大多数主机都包含 WordPress 自动安装程序,甚至预装了 WordPress。
从这里开始,WordPress 界面非常简单,大多数普通用户可以马上开始创建内容。
像 WordPress Customizer 这样的新增功能现在也让人们可以更容易地进行安全的、无代码主题更改,这尤其有帮助,因为越来越多的 WordPress 主题正在以有趣的方式拥抱 Customizer:

The WordPress theme customizer
对于更高级的内容设计,无数的页面构建器插件使得使用拖放来构建布局变得容易,而即将推出的古腾堡编辑器将使用户更容易创建独特的内容。
Joomla 易用性和学习曲线
像 WordPress 一样,大多数网络主机都有 Joomla 自动安装程序,可以很容易地安装 Joomla 软件。
从那以后,你需要在你的网站上投入更多的时间和精力。正如我们所说的,Joomla 结合使用了文章和类别。因此,在开始创建内容之前,您需要为您想要创建的内容类型创建类别。
这没有什么太大的难度,但是比 WordPress 要复杂一些,特别是对于非开发人员来说。
Joomla TinyMCE 文章编辑器与 WordPress 的 TinyMCE 编辑器的实现几乎相同,所以在这方面没有太大的区别:

The Joomla text editor
但是那些还不熟悉 Joomla 界面的人会被各种管理界面中的大量选项所困扰:

An example of how many options the Joomla dashboard has
也就是说,Joomla 确实有一些用户友好的编辑工具,比如页面生成器扩展,这使得事情不那么面向开发人员。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
说到扩展…
如何用 Joomla 和 WordPress 扩展你的网站?
Joomla 和 WordPress 都提供了多种插件类型,你可以用它们来扩展你的站点:
- 功能性——WordPress 称这些插件为,而 Joomla 称它们为扩展
- 美学——WordPress 称这些主题为,而 Joomla 称之为模板
就数量而言,WordPress 的扩展市场更大,但两个平台都有很大的多样性。
WordPress 有多少插件和主题?
目前,WordPress 已经:
- WordPress.org 官方插件目录中有 54,000 个+ 免费插件,外加数千个高级插件
- WordPress.org 官方插件目录中的 5000 个+ 免费主题,外加数千个高级主题
Joomla 有多少扩展和模板?
目前,Joomla 已经:
- Joomla 官方扩展库中列出了大约 8,000 个扩展
没有官方的 Joomla 模板库,所以很难找到可用的 Joomla 模板。不过,一些基本的谷歌搜索会出现大量(大部分)高级 Joomla 模板。
WordPress 和 Joomla 同样安全吗?
Joomla 和 WordPress 的核心软件都是安全的。此外,每个平台还具有第三方插件或扩展以增加额外的安全性,以及方便的仪表板更新系统以帮助保持一切最新。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
也就是说…人为错误总是真实存在的,而且因为每个平台都是可扩展的,所以必然会有安全问题。
根据 Sucuri 的数据,Joomla 网站似乎经历了更多的被黑网站与其市场份额相比。但是,在大多数情况下,每个平台都没有内在的安全性。
WordPress 安全
根据 Sucuri 被黑网站报告-2016/Q3,在 Sucuri 的样本中,WordPress 占被黑网站的 74%,比其市场份额 58.9%(当时)高出约 25%;

Joomla vs WordPress hacked website stats
尽管如此,根据 Sucuri 的数据,WordPress 实际上比 Joomla 表现得更好…
Joomla 安全公司
在同一份报告中,Joomla 网站占所有被黑网站的 17%,比 Joomla 当时 7.3%的市场份额高出约 132%。
然而有趣的是,84%被黑的 Joomla 网站在被感染时运行的是过期软件,相比之下,WordPress 网站只有 61%:

% out-of-date CMS when hacked
这支持了“平台并非不安全”的观点。过时的平台是不安全的。”
从 Joomla 迁移到 WordPress
如果你目前正在使用 Joomla,并且正在寻找一种简单的方法来迁移到 WordPress,我们推荐你去看看wordheed。他们是 Kinsta 的官方合作伙伴,提供全面的网站迁移服务,将数据从任何 CMS (Joomla)平台转移到 WordPress 。
WordHerd 处理从小型企业到大型企业的各种规模的迁移。除了 CMS 迁移之外,WordHerd 团队也非常擅长协助 CRM 数据迁移。
如果你想要一个更 DIY 的方法,你可以看看下面的插件:
Joomla vs WordPress:哪个更好?
就像我们的 Drupal 比较一样,我们认为问“哪个更好?”本身就是一个有缺陷的问题。两个平台都有各自的优势,没有一个在所有情况下都是最优的。
相反,你应该问,“对于我正在创建的网站的特定需求,哪个平台更好?
WordPress 可能更适合大多数网站,并且应该是大多数情况下的默认选择,因为:
- 这是最用户友好的内容管理系统,尤其是对非开发者而言
- 您可以快速建立并运行一个有吸引力的网站,而无需大量的开发时间/成本
- 如果你遇到任何问题,很容易找到免费的专业帮助
但是如果你是一名开发人员,或者愿意雇佣一名开发人员,Joomla 可以为你显示不同类型的内容和管理用户提供更多的灵活性。
这里要考虑的一件事是 Joomla 的市场份额正在下降,但 WordPress 和 Drupal 的情况并非如此。
虽然 Joomla 仍然排在第二位,而且不会很快消失,但当你展望未来时,有必要选择一个不断增长的内容管理系统。
谈到 Joomla vs WordPress,你同意还是不同意?请在评论中告诉我们!
逐鹿!标志是开源公司的注册商标
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
JPG 与 JPEG:了解最常见的图像文件格式
网站所有者总是会遇到图像文件。虽然你不一定要成为图像专家才能编辑和上传图像到网站,但是你应该熟悉常见的文件格式,比如 JPEG。还是 JPG?
在本文中,我将展示一个 JPG 和 JPEG 的对决,这样你就能理解它们的区别,以及其他细节,帮助你将最好的图像上传到你的网站,以获得最终的用户体验。如果你在寻找一本关于现代生活的深度指南。webp 文件格式,我们也帮你搞定了。
准备好了吗?我们开始吧!
什么是 JPEG?
作为一个处理图像的网站所有者,你很可能在编辑和上传的过程中见过 JPEG 文件格式。
但是你知道吗,术语 JPEG 实际上是指三种不同的东西。
是的,我们在这里解释所有的问题:
1.JPEG 有损压缩
当你上传图片到你的网站时,重要的是你要注意不要使用浪费资源的大图片来影响网站的速度和性能。事实上,所有网站所有者都应该以某种方式优化他们的图片,以减少他们图片的文件大小保持加载时间和用户体验。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
这就是 JPEG 派上用场的地方。JPEG 是一种有损压缩方法,用于确保使用的数字图像尽可能小,并在有人想要查看时快速加载。
关于有损压缩,请记住以下几点:
- 通过从图像中删除不必要的(冗余)信息,被压缩图像的文件大小被永久减小。
- 图像质量确实受到了影响,尽管这种影响通常非常轻微,一般的网站访问者无法察觉。
- 在压缩过程中,每个像素与其周围的像素以 2:1 到 100:1 的比率进行比较(任何与原始像素相同的像素都被删除,因为它们被认为是冗余的)。
- JPEG 有损压缩通常用于照片和复杂的静态图像。
- 当您使用有损压缩来压缩图像时,您需要确定文件大小和图像质量之间的平衡(例如,较小的文件=较差的图像质量)。
- 对单个图像进行的编辑和保存越多,图像的质量就越差。
如果您在使用有损压缩编辑图像方面更有经验,那么您可以通过处理原始 JPEG 图像、进行编辑并一次性存储图像,在降低文件大小的同时保存图像质量。
如果你不想对你网站上的图像进行 JPEG 有损压缩,总有另一种选择:无损压缩。
无损压缩以完全不同的格式保存你的图像(通常是 PNG )。虽然图像质量绝不会因为没有信息被删除而降低,但要知道,使用无损压缩,图像的最终文件大小总是比有损压缩大。这可能会导致页面加载速度变慢。
2.联合图像专家组(JPEG)
JPEG 代表联合摄影专家组,它是帮助创建 JPEG 标准的子委员会的名称,以及更广泛的称为 ISO 的组下的其他静止图像编码标准。
第一个 JPEG 标准由 ISO ( 国际标准化组织)于 1992 年发布。 ISO 负责创建文件,这些文件“……提供可持续使用的要求、规范、指南或特征,以确保材料、产品、流程和服务符合其目的。”
ISO 为包括数字图像在内的许多事物制定了标准,努力为用户和消费者提供最高质量的产品和服务。

Image source: Wikimedia Commons
这个国际组织是由超过 164 个国家的成员组成的志愿团体,是世界上最大的标准制定者。
3.JPEG 作为一种文件格式
术语 JPEG 的最后一种用法是指文件格式名称或存储和保存数字图像的方式。这可能是您最习惯看到 JPEG 的方式,因为这是编辑图像后保存图像时可以选择的文件格式之一。

JPEG file format
这里有一些有趣的事实。jpeg 文件格式:
- 数码相机和其他图像捕捉设备使用的最常见的图像文件格式。
- 支持 16,777,216 种颜色,每种颜色在 RGB 颜色模型中使用 8 位生成。
- 可以一次显示超过 1600 万种颜色,使配色方案和对比度分辨率近乎完美。
- 支持的最大尺寸为 65,535 x 65,535 像素。
- 保存时将图像尺寸缩小约 50-75% ( 因为有损压缩)
最后,这种类型的文件格式对于边缘清晰的图像来说并不理想,因为与保存为. png 文件相比,这种文件格式的颜色混合程度更高,因为. png 文件将单个像素显示为一个组合。
那么,现在让我们看看 JPG 是什么。
什么是 JPG?
与 JPEG 相比,JPG 究竟算什么?

File extensions in Windows
说到。jpeg vs .jpg,真相是两个除了字符数没有区别。
疯狂吧?我们来解释一下。
术语 JPG 的存在是因为早期版本的 Windows 操作系统。具体来说,MS-DOS 8.3 和 FAT-16 文件系统在文件名方面有一个最多 3 个字母的限制,而像 Mac 或 Linux 这样的类 UNIX 操作系统没有这个限制。
因此,在 Mac 或 Linux 系统上,保存为 jpeg 格式的图像使用. JPEG 文件扩展名。但当使用 Windows 保存相同类型的图像时,文件扩展名必须缩短为。所以它没有超过 3 个字母的限制。
如今,Windows 操作系统接受 3 或 4 个字母的文件扩展名,如。jpeg 或者. jpg .但是既然这么多人用 Windows 这么久了,而且习惯了把图片存成 jpg,他们就没有停过。因此,Adobe Photoshop 和 GIMP 等照片编辑软件会将所有 JPEG 图像默认保存到。jpg 文件扩展名,以避免混淆。
JPG vs JPEG:两者的相似之处
好吧,你知道的。jpeg 和。jpg 文件是完全一样的东西。但是为了让你明白这一点,并帮助你在未来长久地记住它,我们将看看 JPEG 和 JPG 图像的相似之处。
1.两者都是光栅图像(不是矢量图像)
计算机图像可以创建为光栅或矢量图像。因为 JPEGs 是光栅图像,所以 jpg 也是。
光栅图形是图像的位图。位图是由单个像素组成的网格,当这些像素组合在一起时,就形成了一幅完整的图像。换句话说,光栅图像是无数颜色小方块(或像素)的集合,每个小方块都以特定的色调或阴影进行编码,当它们放在一起时,会创建一个看起来有意义的整体图像。

Image source: PrintCNX
以下是关于光栅图像的更多信息,有助于您更好地理解:
- 最适用于非线条图像,如照片、扫描的艺术品或详细的图形。
- 他们有微妙的色调或阴影层次和非常不明确的线条和形状。
- 由于它们基于像素的性质,当放大尺寸时,它们会遇到质量问题(它们会变得锯齿状,并暴露单个像素)。
- 它们以特定的分辨率定义和显示,以每英寸点数( dpi )为单位。
- dpi 越高,图像的分辨率和视觉吸引力就越好。
- 常见的光栅文件格式包括:TIFF、JPEG、GIF、PCX 和 BMP 文件。
- 光栅图像是网络标准,这意味着它们是互联网上所有图像的首选。
同样,JPEGs 和 jpg不是矢量图像。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!

Image source: PrintCNX
这里有一些关于矢量图像的信息,这样你就可以理解它们的区别了:
- 图像是基于数学公式定义的几何形状,如多边形、直线、曲线、圆形和矩形。
- 非常适合线条艺术等直边图像。
- 因为没有颜色渐变,所以它们适用于颜色均匀的平面图像。
- 包括流行的图形,如徽标、信头和字体。
- 放大或缩小都不会降低质量,因为它们不依赖像素来使图像完整。
2.这两个术语意思相同
还记得我们讨论术语 JPEG 以及它是如何代表联合图像专家组的吗?嗯,你猜对了;JPEG 和 JPG 都是同一个 ISO 分委员会的缩写。
3.两者都用于相同的图像类型
因为它们是光栅图像,而不是矢量,两者都是。jpeg 和。jpg 文件格式最适合用于数码摄影。数码照片具有丰富的色彩层次,当保存为光栅 JPEG/JPG 图像时,看起来无缝。这意味着如果你的网站访问者保存为. jpeg/格式,他们将会看到一张漂亮的照片。jpg 并上传到你的网站。
了解更多关于图像文件类型及其对您网站的影响。
4.两者在保存时都会失去一些质量
自从。jpeg 与 jpg 的比较为空(因为它们是完全相同的东西),这说明每种文件格式使用的压缩方法——有损压缩——会随着图像文件大小的减小而导致图像质量的损失。
此外,这意味着无论您使用什么文件扩展名()。jpeg 或者。jpg ),你的图片的文件大小将会比原来的小,并且当上传到你的网站并被网站访问者浏览时会导致更快的加载时间。
归根结底,JPEGs 和 jpg 是一回事,它们有几个主要目的:减小图像的文件大小,以便更好地在网上浏览;给人们提供一种在保存时压缩图像的简单方法,并使用许多人都认可的通用文件扩展名来命名文件。
所以问问自己: JPG vs JPEG,哪个更好?从那里开始,不要想太多,因为答案是两者都不是。它们是一样的,你选择哪一个,只是个人喜好的问题。
JPG vs JPEG 2000
如果你曾经发现自己在搜索关于 JPEG 和 jpg 的信息,你可能遇到过术语 JPEG 2000 并且想知道那究竟是什么。毕竟,这不是大多数图像编辑软件的选项。
如果你在你的网站上上传了大量的照片和图像,你不希望为你的访问者提供速度慢的页面,对吗?我们提供超快的服务器和来自 WordPress 专家的 24/7 世界级支持。查看我们的计划
JPEG 2000 是由联合图像专家组在 2000 年创建的图像编码系统,旨在比现有的 JPEG 标准更好。事实上,它被设计成使用离散波长变换的高级压缩技术来实现图像的无损压缩。
它为人们提供了一种方式来优化他们的图像,并将其保存为 JPEGs 和 T2 格式,而不会降低图像的质量。
以下是 JPEG 2000 的一些最重要的功能:
- 高级压缩技术:与传统的 JPEG 不同,JPEG 2000 能够执行有损和无损压缩(甚至对单个图像文件进行压缩)。
- 渐进式解码:使网站访问者能够看到图像的较低质量版本,而整个图像仍在后台下载。随着下载的数据越来越多,观看者的图像质量也越来越好。
- 更高的压缩比:在有损压缩方面,JPEG 2000 可以比 JPEG 多压缩 20-200%的图像,同时与相同大小的 JPEG 图像相比,保持相同的图像质量。
此外,JPEG 2000:
- 在图像中提供透明保护。
- 可以描述二值、灰度、调色板颜色和全色图像数据。
- 包括无限量的私有或专用信息。
- 可以处理更大的图像尺寸(大于 64K x 64K 像素),不会倾斜。
- 超低延迟,这对于直播电视内容尤其有用。
- 分辨率和质量的可扩展性。
JPEG 2000 的限制
尽管 JPEG 2000 有许多出色的功能,似乎是数字图像的下一个最佳编码标准,但它仍然不是大多数人喜欢的文件格式,这是有原因的:
- 不支持通用浏览器(只支持 Safari )。
- 与 JPEG 不兼容(必须编码新标准并支持原始 JPEG )。
- 对 JPEG 2000 文件进行编码是 CPU 密集型的,这会给服务器带来压力并降低速度。
- 许多网站和相机还没有准备好接受这种格式,因为它没有被普遍接受。
由于它的局限性,你很难找到 JPEG 2000 文件格式作为保存数字图像的选项。虽然它可以说比 JPEG 更好,但在它被普遍接受之前,你可能会遇到一系列兼容性问题,使你作为网站所有者的工作变得更加困难。
将图像文件转换为 JPG:常用方法
有很多方法可以将您的数码图像保存为。jpg 或者。jpeg 文件。下面我们来看几个。
1.Windows 油漆
如果你有 Windows,你可以很容易地将任何图像保存为. jpeg 或。使用 Windows 画图。只需将您的图像上传到 Windows Paint,进入文件 > 另存为,选择文件目标,命名您的图像,并选择 JPEG (。jpg,。jpeg,。jpe,。从下拉菜单中选择。

Windows Paint
然后点击保存。
2.亲和力设计者
Affinity Designer 很像 Adobe Photoshop 等其他图像编辑软件。要使用这样的软件将图像保存为 JPG,首先打开应用程序并上传您的图像。进行任何想要的编辑,然后单击文件 > 导出… 。然后,选择 JPEG 图标,选择质量(最佳、高、中、低,点击导出。

Affinity Designer
当你这样做,另存为对话框将打开,这样你就可以选择一个文件的目的地,命名你的图像,并再次确保你是保存文件为 JPG。

“Save as” in Affinity Designer
点击保存。
3.在线转换器工具
如果你想把图片转换成 JPG,有很多免费的在线 jpg 转换工具可以帮助你。例如, FileZigZag 是一个免费的在线文件转换器,使用简单。只需拖放或上传您的图像文件,选择要将图像转换成的文件类型,输入电子邮件地址,然后单击转换。

Convert png to jpeg FileZigZag
当然,你可能不想交出你的电子邮件来换取将你的图像转换成 JPG。因此,我们收集了一些其他免费和高级解决方案供您查看:
- XnConvert : 非常适合需要大量图像文件格式、能够批量转换并使用 Windows、Mac 或 Linux 的高级图像编辑器。
- Zamzar : 一款免费的在线工具,适用于那些拥有大尺寸图片(高达 50MB )的用户,他们可以选择是否通过电子邮件发送最终结果。
- 适配器 : 一个简单的图像转换器,支持批量图像和即时转换,在 macOS 和 Windows 上都可以工作。
当然,如果你想把图片转换成 JPG,这些只是你可以选择的一部分。
摘要
对于那些想要存储和保存数字图像的人来说,JPG 和 JPEG 是最常见的文件扩展名和压缩方法。对于希望展示视觉上吸引人的图像并保持卓越用户体验的网站所有者来说,尤其如此。
你很幸运,不管你是否喜欢。jpeg,。jpg 或者。webp 文件类型,你会得到同样的结果:美丽的图像,为网站访问者加载速度极快。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
修复“jQuery 未定义”错误的 5 种简单方法
无论你是否对 WordPress 错误感到陌生,在你的网站上工作时遇到“jQuery 未定义”都不是一件有趣的事情。这可能是一个令人吃惊和困惑的消息。幸运的是,这是一个标准错误,使用 jQuery 的网站可能会在某个时候遇到。
也许您的站点关闭了,当您检查浏览器控制台的错误时,您会看到“jQuery 未定义”找到错误是第一步——干得好!
下一步是解决它。因为这是一个更容易修复的 JavaScript 错误,所以不会花你太多时间。
在本帖中,我们将带你了解快速修复它所需的一切。这包括错误意味着什么,为什么它可能会发生在第一位,所有的关键信息,以防止这种错误在未来发生。最后,我们将引导您完成几个步骤来解决这个问题。
让我们开始吧!
查看我们的视频指南来修复“jQuery 未定义”错误
T3】
什么是“jQuery 未定义”错误?
您的浏览器中便利的控制台日志是您可能会发现这个错误的地方。但这并不是难以置信的描述。“jQuery 未定义”实际上是什么意思?
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
简单地说,这个错误试图告诉你,你的站点上的某个东西——可能是一个插件——需要 jQuery 才能在你的站点上运行。出于某种原因,当浏览器试图加载网站并调用特定的 jQuery 时,它不可用。
这个错误可能会对访问者关闭您的网站。因为互联网上大约 78%的网站运行在 jQuery 上,这是一个常见的错误。

jQuery is not defined” error in the console log.
“jQuery 未定义”错误的潜在原因
这个错误可能相当令人惊讶。你的网站昨天还好好的,怎么了?这可能有点让人挠头。
引发“jQuery 未定义”错误的可能原因有以下几种:
- 你的 WordPress 站点上安装的旧插件与你最近安装并激活的插件相冲突。如果您最近安装或激活了新插件或者您网站上的一些插件最近没有更新,这可能是原因。
- 运行缓慢或性能不佳的托管环境会增加 jQuery 被调用时的执行时间。请仔细检查您的服务器资源或错误日志以确认这一点。
- 在 jQuery 完全加载之前,您的网站上的 JavaScript 正在运行。或者在页面加载时 JavaScript 文件没有被正确加载。
- 你用来提高网站性能的 CDN 无法到达你的服务器。如果你根本不用 CDN,你可以完全排除这种可能性。
- 您的 jQuery 版本中有错误或打字错误。也许有人最近编辑了一个核心文件或插件,现在已经引起了冲突。
如何修复“jQuery 未定义”错误
在我们开始修复之前,记得在编辑代码之前备份你的网站!即使是最有经验的开发人员也会犯错误,手头有一份备份可以防止您在排除故障时丢失任何重要的工作。
如果你可以选择,首先在试运行或开发站点上解决错误,就像 Kinsta 的客户所做的那样,然后确认修复并将这些更改推送到现场。
一旦你采取了必要的预防措施,就该纠正错误了。
解决此错误需要熟悉添加、移除和编辑代码。不要担心——您不需要从头开始编写任何代码。但是如果你准备好访问你网站的代码,不管是通过 SFTP 还是通过你的托管环境,都会有所帮助。
对于通过 WordPress dashboard 代码编辑器编辑代码来说,这并不理想。如果你手头还没有一个好的文本编辑器,现在是时候安装一个了。
这里有几个选项,你可以利用来解决这个错误,让您的网站回到访客。
方法 1:如果正在加载 jQuery,使用 Network 选项卡进行调试
查看浏览器开发工具的 Network 选项卡,查看 jQuery 是否被加载。这为您提供了一个快速验证的地方。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
另一种方法是查看可能导致错误的多个插件和主题。仔细检查站点的代码,确保包含 jQuery。最好是只装一次。
如果没有包含 jQuery 库,用下面的代码片段将它添加到您的wp_enqueue_script()函数中:
wp_enqueue_script( 'tt-mobile-menu', get_template_directory_uri() . '/js/mobile-menu.js', array('jQuery'), '1.0', true );
通过进入 wp-includes 文件夹找到这个代码,然后打开 script-loader.php 文件。如果这不起作用,或者如果您发现 jQuery 库实际上已经包含在内,请继续使用下面的方法。

How your snippet will look in the script-loader.php file.
方法 2:确保 jQuery 已加载
当包含了 jQuery 但未加载时,您可能会遇到“jQuery 未定义”错误。确保通过找到脚本源并在新的浏览器或标签中粘贴 URL 来加载它。
例如,如果<script src=设置为:

The snippet of text you should look for to find the URL to test.
然后,将http://code.jquery.com/jquery-1.11.2.min.js部分复制并粘贴到一个新窗口或标签中。如果 jQuery 文件加载并显示了全部内容,您可以从列表中检查这一点。
厌倦了低于 1 级的 WordPress 托管支持而没有答案?试试我们世界一流的支持团队!查看我们的计划
方法 3:包含 Google 托管的 jQuery 和本地回退
这是包含在您的 JavaScript 中的一个很好的选项,因为在 localhost 上运行 jQuery 可以从整体上改善您的网站体验。这将有助于避免任何其他 CDN jQuery 加载问题。
// Fall back to a local copy of jQuery window.jQuery || document.write(''))

This is what your code snippet should look like in your code editor. Don’t forget the note!
方法 4:将代码片段添加到 wp-config.php 文件中
如果以上都不起作用,打开wp-config.php文件并完整粘贴以下代码片段:
/** Absolute path to the WordPress directory. */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); define('CONCATENATE_SCRIPTS', false);

What the snippet will look like in your wp-config.php file.
方法 5:手动插入 jQuery 库
作为最后一种方法,您可以直接进入header.php文件并添加 jQuery 库。
方法如下:
- 首先,访问 Google 托管库,完整复制最新版本的 jQuery 库。
- 打开你的主题文件夹中的 header.php 文件。
- 添加第一步中的 jQuery 库。确保它就在头部标签之后的中。
- 完成后保存文件。

What the snippet will look like in your wp-config.php file.
好消息——你已经发现了“jQuery 未定义”的错误。🙃现在是时候解决了!⬇️ 点击推文
摘要
现在你知道了!按照这些步骤,您应该能够解决“jQuery 未定义”错误并访问您的站点。
由于这个问题通常是由于浏览器无法连接到您的 jQuery 库造成的,因此您可以尝试的解决方案非常有限。大多数人发现以上任何一种选择都是成功的。
如果出于某种原因,以上步骤都没有解决错误,那么联系你的托管公司寻求支持是个好主意。
你以前遇到过这个错误吗?你是怎么解决的?请在评论区告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
为什么你应该把你的邮箱和主机分开
你的虚拟主机和摇摆舞活动没有最明显的联系。然而,在一次活动中,每个人都必须遵守一条重要的规则:“一次跳一支舞。”换句话说,在跳下一个舞之前专注于一个舞。这也解释了为什么把你的邮箱和主机分开是个好主意。
任何一个称职的网络主机都想为其客户提供一流的服务器基础设施和 T2 坚如磐石的安全性。因此,提供电子邮件等其他(但相关的)服务可能会稀释核心产品。虽然这可能不是唯一的因素,但仍然是一个很大的因素。
鉴于此,我们将深入探讨为什么你应该保持电子邮件和托管分开。我们将讨论为什么 Kinsta 不提供电子邮件托管,然后收集一些优秀的电子邮件托管提供商。此外,我们还将带您参观如何设置自己的电子邮件服务器。
我们开始吧!
电子邮件对于个人和商业用途的重要性
快速突击测验:保证别人会收到你的信件的唯一方法是什么?
一封信可能会丢失,电话有时会消失在空气中,当你敲他们的门时,收件人可能会躲在沙发后面。
答案是电子邮件。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
是的,有可能一封电子邮件被放入了垃圾邮件文件夹,但它仍然会到达你的收件人那里,只是在不同于收件箱的文件夹中。不管怎样,这不是你能控制的。
即使有了即时消息渠道和社交媒体,电子邮件仍然是联系人们的一种成功方式。尽管即时平台之间有相似之处,但电子邮件更直接——毕竟它是电子邮件。而且是通用的。
数据证实了这一点。目前的数据显示,全球大约有 40 亿电子邮件用户。那是和 WhatsApp、 Facebook Messenger 、Telegram、Snapchat 加起来差不多的数字。
Most popular global mobile messenger apps as of July 2021. (Image source: Statista).
更重要的是,电子邮件用户帐户的数量看起来在未来将继续上升。鉴于电子邮件有 90%的渗透率,它将会存在很长一段时间。
PSA:将电子邮件和托管分开,找到各自的最佳提供商👀了解更多此文⬇️ 点击推文
为什么 Kinsta 不提供电子邮件托管(而有些主机提供)
因为这些统计数据,很容易理解为什么主机公司会选择在提供主要服务的同时提供电子邮件。
最终,电子邮件的发送和送达能力都在主机的掌控之中。这些方面使用发送域和 IP 进行验证和检查,非常适合 web 主机。毕竟,有谁比网络专家更能确保
信息快速准确地到达接收者手中呢?
可能有更好的选择。
你的虚拟主机不会成为电子邮件托管各方面的专家。出于这个原因,Kinsta 不提供电子邮件托管。我们在 Kinsta 网站的其他地方讨论过这个问题,但是让我们总结一下为什么会这样:
我们所有的资源都致力于使 Kinsta 成为业界最好的应用程序、数据库和托管 WordPress 托管平台。
上面的引用应该告诉你你需要知道的一切。我们的方法是成功的,我们知道,虽然 Kinsta 为 WordPress 网站提供一流的托管服务,但像 Google Workspace 这样的解决方案也能为电子邮件托管提供同样的服务。
当我们可以专注于我们擅长的事情时,为什么要尝试重新发明轮子呢?此外,这为我们的客户提供了更好的选择,对每个人来说都是双赢!
为什么你应该保持电子邮件和托管分开
虽然有很多个人原因让你应该把电子邮件和主机分开,但也有很多技术原因。
对于初学者来说,资源使用是一个很大的优势,因为你不会通过你的带宽和存储供应搅动。此外,你可以将这些资源投入到与托管网站相关的元素上,而不是从你的电子邮件账户中抽走一些。
反过来也一样。您的电子邮件主机有自己的专用资源,不会受到其他服务的影响。在大多数情况下,同步这些帐户就像合并提供商一样简单。
它对两个平台的可靠性都有连锁反应:每个服务负责一项工作,可以分配时间和精力以确保两者都坚如磐石。然而,有可能你的主机或电子邮件提供商中的一个不如另一个优秀。当你涉及预算时,这是可以理解的。
在这种情况下,你可能会选择一家联合供应商。然而,如果电子邮件或主机宕机,通常会导致另一方宕机。这对于任何依赖在线交流的企业来说都是灾难性的——也许这是最重要的原因。
说到商业,将电子邮件和虚拟主机分开有一个节省时间的好处。如果你觉得某项服务不适合你,或者你想寻求更好的服务,那么在不影响你的另一半业务的情况下,你可以很容易地做到这一点。
如果你在两个方面与一个合并的提供商捆绑在一起,就很难打破这些链条。因此,你最好选择独立的电子邮件和主机提供商。
6 大电子邮件托管提供商
在这一点上,你可能会点点头,准备抛弃你的电子邮件和虚拟主机。不过,首先,你需要一个合适的电子邮件提供商。
以下六种解决方案都适用于单独的主机,不过我们将在接下来的几节中更详细地讨论它们。使用任何一种方法都可以让你把电子邮件和主机分开。
1.谷歌工作空间

The Google Workspace website.
首先,我们有谷歌工作空间。对数百万用户来说,这是一项熟悉的服务,不仅仅是因为它提供了高质量的电子邮件。顾名思义,它是一整套工具和应用程序,帮助你开展日常工作(尽管我们在这里只关注电子邮件)。

Google Workspace apps.
Gmail 当然是 Workspace 的电子邮件托管部分。这是谷歌的一项长期服务,从一开始,它就确定了电子邮件的内容。你可以使用一键式快捷键来执行几乎每一个动作,让砍掉一个庞大的收件箱变得轻而易举。我们很欣赏 Vim 式的导航快捷方式来浏览您的收件箱。
毫不夸张地说,Gmail 重新定义了许多人眼中的电子邮件。几乎每个提供商现在都使用一个存档文件夹来存放旧邮件,并且大多数都包括受 Gmail 启发的彩色标签来标记特定的电子邮件以备后用。由于 Gmail 的流行,过去的旧文件夹系统现在几乎过时了。
因为 Kinsta 运行在谷歌云平台上,你也可以更好地与工作区应用集成。这一点我们稍后会详细讨论,但如果你是 Kinsta 用户,你可以“自动应用”你选择的域名的 MX 记录。
总的来说,Gmail 几乎拥有一切优势:
- 它是安全的,现在对每个人都是无广告的。
- 你有一套很棒的键盘快捷键,其他应用程序现在也在使用。
- 谷歌给你 99.9%的正常运行时间保证和“零计划停机时间”这是一项永不停息的服务。
- 您可以将 Gmail 用于企业或个人账户。
- 与 Google Workspace 的其他部分有大量的集成,例如 Google Meet、 Google Calendar 以及其他各种实用的商业应用。
的定价也很棒。每个用户的等级从 6 美元到 12 美元不等,尽管每个用户 30 GB 的云存储对大多数人来说是完美的。
我们将诚实地说,如果你还没有使用谷歌工作空间,这不是偶然的。但是,如果您不是当前客户,我们建议您再次查看。这可能是全年最划算的采购。
2.Microsoft Outlook
如果你从未使用过 Hotmail,你就不能说你是一个老派的互联网用户。经典的免费电子邮件客户端在 2011 年变成了 Outlook ,随之而来的是业务应用的重心转移。

The Microsoft Outlook app.
虽然 Hotmail 的声誉并不完美(改名的原因之一),但微软一直在努力将这项一次性的免费服务转变为一个受人尊敬的托管电子邮件的商业平台。他们将它与微软 365 云服务结合起来运行,就像谷歌一样,你可以将整套应用程序集成到你的电子邮件中。
日历、任务管理器和用户配置文件等常见的疑点都在这里。一切都留在云中,并使用您的 OneDrive 帐户在设备之间进行同步。
虽然谷歌这样的服务并没有过多提及其平台的安全性,但微软将其企业级安全放在了首要位置。它对你的邮箱和发送的邮件都使用数据加密技术。
Outlook 还会停用它检测到的不安全链接,如恶意软件或病毒。最重要的是,您可以检测勒索软件,这对企业至关重要,还可以选择 OneDrive 恢复选项。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
下面是我们喜欢 Outlook 的一个快速总结:
- 您将获得微软作为支持您业务的电子邮件提供商近 25 年的经验。
- Outlook 界面很吸引人,并提供了一组集中的视觉效果。
- 您的电子邮件将获得企业级的安全性,以及额外的工具来抵御诈骗、病毒等。
- 也有一些内置应用程序,如日历和任务管理器。即便如此,你也可以将 Outlook 与微软 365 的整套应用程序集成在一起。
它的定价让其他解决方案也不逊色。在核心层面上,Outlook 是 100%免费的。整个微软 365 套件都是免费的。如果您希望升级到高级,有一组有竞争力的等级可供选择。大多数用户可能想要 5 美元或 12 美元的套餐,这取决于您是否使用远程工作功能。
总的来说,Outlook 是一个更具功能性的工具,它(很像 Google、Zoho 和其他公司)希望让你留在它的生态系统中。它通过提供一套出色的应用程序来管理您的整个业务。然而,它的电子邮件服务是领跑者,而且很可能在未来许多年都是如此。
3.Zoho 邮件
紧随其电子邮件托管解决方案之后, Zoho 也提供了一系列应用程序来管理你的业务。然而,它的邮件服务每天都赢得许多新顾客。

The Zoho Mail app.
Zoho 包含了数量惊人的特性来扩展其软件包的整体功能。基本上,电子邮件客户端是一个简单的(尽管运行良好)应用程序,看起来很像 Gmail 和 Outlook,但不太像 T1。你得到了日历、任务列表、联系人管理器和笔记的标准集成,这些都是大多数其他电子邮件客户端所拥有的。
然而,Zoho Mail 的用户体验(UX)是领先的。您可以从团队投入到仪表板和一般帐户管理的努力中看出这一点。例如,您可以设置一个自定义域,使用户能够通过一个邮件子域登录。这有助于每个人知道去哪里收发电子邮件。
Zoho Mail 也对特定的 IP 地址使用基于限制的功能。这意味着您可以让您的电子邮件帐户更加安全,因为只有特定位置的少数用户可以访问。还有其他很棒的用户管理工具,比如用户角色设置。
关于 Zoho,我们还可以谈论更多,但这里有一个快速的纲要:
- 你有一个发送和接收电子邮件的功能客户端。
- 包装盒中有大量的用户和组管理工具,这意味着您可以根据自己的需求定制系统。
- Zoho 也提供了一套强大的垃圾邮件策略工具,它使用多种验证协议。
- Zoho Mail 提供企业级安全帮助保护你的数据安全。
- 一个令人兴奋的内置工具是电子发现门户。简而言之,这有助于您跟踪您的电子邮件保留政策,并且对于任何必须遵守隐私和数据保护法的企业来说都是必不可少的。
令人震惊的是,Zoho Mail 的价格与其他解决方案相比也是很便宜的。最高价大约是每个用户每月 4-5 美元,考虑到该服务的特性集,这意味着你至少不能调查它。
Zoho 在过去几年里取得了很大的进展,并将继续这样做。鉴于 Zoho 邮件的质量,我们可以看到这是为什么。
4.质子机
从 Zoho 的印度,我们前往瑞士和质子邮件。它是一个开源的电子邮件提供商,重视隐私高于一切,由 CERN 工程师团队(也是网络的发源地)开发。

The ProtonMail website.
瑞士拥有世界上最严格的隐私法。因此,有了 ProtonMail 的服务器和在该国的业务,你的数据会尽可能的安全。它对你的电子邮件使用端到端加密,你可以选择是否在发送时应用。
需要一个给你带来竞争优势的托管解决方案吗?Kinsta 为您提供了令人难以置信的速度、一流的安全性和自动伸缩功能。查看我们的计划
网络界面很友好,尽管它缺少一些功能。您只能将该服务连接到少数外部电子邮件客户端,即使它接受 ProtonMail Bridge 连接。这是一个棘手的问题,但隐私的好处远远超过这里的负面影响。
此外,您的数据非常安全,如果您丢失了密码,即使是 ProtonMail 也无法恢复您的帐户。那当然很可怕。然而,它也让您放心,敏感数据只供您的眼睛和客户使用(除了少数例外涉及执法)。
以下是我们认为使 ProtonMail 脱颖而出的原因:
- 它提供了我们从电子邮件提供商那里遇到的最高级别的隐私。
- 你的电子邮件有适当的端到端加密,你甚至可以在 Gmail、雅虎和其他网站上利用它。
- 电子邮件网络界面很好用,尽管有些地方缺乏功能。
- 你有 iOS 和 Android 的应用程序,你可以通过 ProtonMail Bridge 软件将 ProtonMail 链接到 Outlook、雷鸟、苹果邮件等等。
ProtonMail 有四种不同的定价方案。好消息是,有一个免费层可用,虽然这不像其他免费电子邮件主机的产品堆叠。
其他层的价格都很合理;专业计划将是最有吸引力的。每个用户每月 6.25 美元,允许您使用一个自定义域,提供灵活的存储管理,并授予您对团队的高级管理控制权。
5.盘旋
如果你不知道悬停,让我们告诉你细节。这符合我们“一次跳一支舞”的理念,因为该公司完全是关于领域的。这是一个提供疯狂数量的顶级域名(TLD) 扩展的注册商:

A Hover list of domains.
然而,电子邮件和域名放在一起要比和主机放在一起舒服得多。这似乎是一个更好的搭配,而且只有两个核心服务可供选择也很有帮助。
Hover 最大的优点是它没有多余的东西,也不麻烦。你有一个像样的网络客户端来查看你的电子邮件,但你也可以将这项服务连接到你的桌面或移动客户端。其中一个卖点是,你不必改变你的工作流程或做法来使用悬停,这将吸引许多繁忙的业务。
让我们给你一个关于悬停的优点的快速列表:
- 这是一项简单的服务,能满足你的一切需求,仅此而已。
- 您可以购买您的域名,并从 Hover 的仪表板内将您的电子邮件链接到该域名。同样的道理也适用于定价,因为你的域名和电子邮件是同时计费的。
- 您可以根据需要为一个域添加任意数量的邮箱。
- Hover 是一个私人的、无广告的、无追踪的解决方案。
- 它有一个内置的垃圾邮件检查器和杀毒软件。
至于定价,有两层:小邮箱和大邮箱。小邮箱是 10 GB 的存储,每月 20 美元,而大邮箱是 29 美元的 1 TB 存储。你也可以使用一个“只转发”的插件,将任何发往你的域名的邮件直接重定向到你当前的邮箱。
如果你想把你的域名和电子邮件与你的主机分开,悬停将是完美的选择。毕竟,如果你的域名关闭,你以域名为中心的电子邮件地址也将无法使用。无论您是否使用单独的提供者,都是如此。它不会妨碍你的体验,对于直截了当的商务邮件,它会很好地为你服务。
6.Mailgun
Mailgun 是我们在关于免费 SMTP 服务器的文章中提到的一个解决方案。因此,我们拥有丰富的服务知识和经验。

The Mailgun website.
这是一个基于应用编程接口(API) 的服务。你可以用各种编程语言与它连接,比如 Python 、 Node.js 、Java、 PHP 。

A table of languages you can use with Mailgun’s API.
Mailgun 非常适合事务性或批量电子邮件,因为它可以与最佳产品一起扩展。它有助于提高你的投递率,并且为费率管理提供了很好的工具。我们喜欢它如何包括一个电子邮件模板生成器来帮助你起草固定的回复并回到正题。
这有助于在你的电子邮件中包含广泛的变量。当你试图个性化你的邮件时,这可以帮你一把。
我们可以一整天都抒情地谈论 Mailgun。你可以在我们关于如何在 WordPress 中设置 Mailgun的专门文章中读到所有相关内容。值得一读,更熟悉平台。
也就是说,请注意,虽然 Mailgun 曾经有一个自由层,但现在已经没有了。相反,你可以获得为期三个月的慷慨试用,每 1000 封电子邮件的付费率约为 0.80 美元。至于其他等级,您可以从他们的 $35、$80 或$90 等级中进行选择。在每个增量层上提供更多功能,同时增加计划中包含的电子邮件数量。
如果你发送许多交易和营销相关的电子邮件,Mailgun 是一个很好的选择,以保持电子邮件和主机分开。
如何设置您的电子邮件服务器(MX Records 简介)
在我们开始之前,让我们给你一个如何设置你的电子邮件服务器的快速概述。
要用 WordPress 设置这个,你需要一个适合的 SMTP 插件。更重要的是,你(当然)需要一个电子邮件提供商。
如果你打算选择像 Google Workspace 这样的解决方案,这个过程会很简单(或者说已经准备好了)。然而,如果您要使用诸如 Mailgun 之类的 SMTP 服务,这个过程会更复杂。
除了我们的 Mailgun 使用指南,我们还有一个使用谷歌免费 SMTP 服务器的指南。可能你也想把你的提供商的邮件发送到你选择的客户端,比如苹果邮件或者 Outlook。我们将介绍如何通过雅虎的电子邮件服务做到这一点,这个过程与其他提供商类似。
下一步将是设置您的邮件交换器(MX)记录。简而言之,这是你如何让你的电子邮件从你的域名发送,所以他们是必不可少的。不管你的域名注册商和主机提供商是什么,这个过程通常都是一样的,所以不管你最终选择哪个提供商,你都会得到很好的照顾。
想知道为什么要把电子邮件和主机分开?📧以下是一些原因...👇
摘要
虚拟主机提供商为你的网站提供一流的基础设施,但有时他们会超出自己的站点。这是合乎逻辑的,看看为什么网站主机也可能提供电子邮件给客户。毕竟,那些 HTTP 请求必须去某个地方,还有谁比通过你的主机更好呢?
在 Kinsta,我们认为你应该把电子邮件和主机分开。主持人应该专注于自己擅长的领域,并投入资源提供尽可能最好的服务。
对于电子邮件,你可以从一系列出色的电子邮件托管服务中进行选择,如谷歌工作空间、悬停和邮件枪。每一个都很容易设置和连接您的域名,网站和电子邮件客户端。
你认为你应该把你的电子邮件和虚拟主机分开,还是把它们合二为一?请在下面的评论区告诉我们你的想法!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
一步一步的关键字研究指南(奖金:最佳关键字研究工具比较)
想象一下,每个月有超过 25 万的访问者访问你的网站。我们做到这一点多亏了关键词研究:

Monthly SEO Traffic
这张截图来自我的一个名为流浪房车的网站。我和我的妻子在仅仅三年的时间里,用不到 30 篇文章,把这个网站从一个全新的网站发展到每月 25 万的访问量。
是的,你还必须创造伟大的内容并建立到这些内容的链接,但是这些行动是在你知道最佳的目标关键词之后。每一次成功的 SEO 战役都是从关键词调研开始的;跳过这一步,后果自负。
准备好开始了吗?
如何进行关键词研究(快速步骤):
好的关键词决定了 SEO 营销活动的成败。以下是开始关键词研究的关键步骤:
第一步:根据关键词、相关搜索、长尾关键词、LSI 找到关键词创意。
第二步:查看真实关键词难度和搜索量。
第三步:确定用户意图。
Support
在今天的指南中,我分享了一个一步一步的关键词研究指南,不仅涵盖了如何找到数百个伟大的关键词,还包括如何告诉你哪些可以为你的业务移动针,哪些不值得你的时间。让我们开始吧!
关键词研究基础
在我谈论为你的搜索引擎优化活动寻找关键词的具体步骤之前,让我们简单地了解一下什么是关键词研究,以及为什么你应该关注它。
什么是关键词研究?
关键词研究是在搜索引擎优化活动中寻找和审查关键词的行为。
这是通过使用一些免费和/或付费的工具来完成的,这些工具会向你展示人们在谷歌和其他搜索引擎上搜索的内容。
关键词研究在数字营销中的作用
正如你将在下一节学到的,关键词的质量是成功营销活动和浪费时间的区别。你挑选的关键词会从头到尾决定你的 SEO 营销策略。
让我们看看怎么做。
关键词研究有多重要?(不要跳过这个!)
SEO 可能很复杂,但它可以归结为三个基本要素:
这三者中,关键词研究是最重要的。
为什么?因为你可以创造最好的内容,建立令人难以置信的链接,使你在谷歌排名中名列第一,但如果你瞄准了错误的关键词,在业务增长或收入方面仍然没有任何好处。
例如,假设你想在你网站的博客上写一些内容,这样你就可以出现在谷歌的第一页。你有一个博客帖子的想法,并认为你有一个好的关键词来瞄准。你制作惊人的内容,通过客座博文和电子邮件推广建立链接(这里是如何找到任何人的电子邮件地址,并最终出现在谷歌的首页。你每个月都有数百次访问…
但是你从那篇文章中获得的收入仍然是一大笔钱。
那是因为你没有提前研究好你的关键词。你可能找到了一个关键词,但是找到一个关键词和做关键词研究是完全不同的两码事。
正确地研究一个关键词意味着了解它的收入潜力,它的竞争力,甚至你需要创建的内容的确切类型,以便能够为它排名。在本指南结束时,你会明白我的意思。
简而言之:恰当的关键词研究可能是一场疯狂成功的搜索引擎优化活动和一场完全浪费时间和金钱的搜索引擎优化活动的区别。
搜索量和长尾关键词
关于关键词要理解的第一个概念是搜索量。
这是大多数人第一次开始研究关键词时看的,也是最糟糕的指标之一。
高搜索量非常具有欺骗性,原因有二:
- 搜索某样东西的原始人数与你实际能从流量中赚多少没有太大关系。例如,如果你对一个每月被搜索 10,000 次的关键词进行排名,但如果人们只是在寻找信息,并不准备购买(提示:你需要定义搜索意图。更多见下文。),这对你的底线没有任何帮助。
- 仅仅因为 10,000 人搜索一个关键词并不意味着所有 10,000 人实际上都点击了一个结果。以“特朗普多大了”这个关键词为例,它每个月会被搜索 3 万次,但只有 13%的人会点击任何东西。这是因为人们在谷歌上就能找到正确的答案,不需要点击就能找到。

Keyword Search Volume to Click-Ratio

Bad keyword example
另一方面,低搜索量并不意味着一个关键词是不好的,或者你看到的数字就是你将获得的访问者数量。事实上,所有在谷歌上对一个关键词进行排名的页面也会对几十个、几百个,有时甚至几千个其他关键词进行排名。
这些其他关键字通常是同义词和长尾变体。还有潜在的语义索引(LSI)关键字,我将在下面的一节中介绍。
例如,看看我妻子 Kayla 为流浪房车写的这篇文章。她瞄准的关键词是“最佳露营装备”,根据 Ahrefs 的数据,这个关键词每个月会被搜索 2700 次。但正如你在下面的截图中所看到的,它还在 1912 个其他关键词中排名,甚至在第一页的“露营装备”中排名每月 32000 次搜索!

Ahrefs Keywords
故事的重点?虽然搜索量是一个重要的指标,但你不应该把你的目标关键词仅仅建立在每月有多少人搜索它的基础上(除非你只关注品牌知名度和/或每次印象的广告收入)。
搜索意图
搜索意图就像它听起来的那样——搜索给定关键字的人的意图。类似于营销概念“买家意图”。
换句话说:用户在寻找什么?
他们是否正在寻找一件他们现在就准备购买的商品?他们在做出购买决定之前是否做了调查?或者他们只是在寻找与购买无关的信息,而是寻找他们可能需要解决的问题?
让我们来看一个例子。
高购买意愿:高购买意愿关键词可能是一个产品名称,如“RV rental las vegas”。如果你在谷歌上输入这个,看看结果,你会看到一堆房车租赁广告和一张显示拉斯维加斯房车租赁公司的地图。有人搜索这可能是准备购买,或非常接近。
![High Search Intent]](https://github.com/OpenDocCN/geekdoc-php-zh/raw/master/kinsta-blog/img/aa05e0106937312fce959fca2adb4667.png)
High Buying Intent
研究意图:这些是人们仍在研究解决方案,但可能很快就会购买的关键词。“最佳”和“评论”关键词往往属于这一类,比如“最佳房车租赁公司”。

Medium Buying Intent
信息意图:这些关键词是给那些严格地寻找信息,但还没有准备好或者甚至还没有考虑购买任何东西的人的。“特朗普多大了”的例子就属于这一类。另一个适合房车租赁的例子可能是“如何带着宠物在全国旅行”。
但是,不要以为买了意向关键词就应该只去。信息关键词可以帮助你建立你的电子邮件列表,让人们进入你的营销漏斗,最终向你购买。
了解搜索意图也很重要,因为它会影响内容在谷歌上的排名。如果你试图创建一个登陆页面来对一个信息关键词进行排名,而谷歌正在对长篇博客内容进行排名,即使有完美的页面搜索引擎优化和大量的反向链接,你可能也不会排名,因为这根本不是用户正在搜索的。
比如说你要给“小营员”排名。所以你创建了一个拥有小型露营车的指南。然而,当我们查看谷歌时,我们可以看到人们并不是在寻找指南,而是在寻找一份小型露营者的购买清单。

Search Intent Example
这就是为什么即使在你找到好的关键词创意、之后,你也应该总是手动将它们输入谷歌,并查看当前的排名,以了解你需要创造什么。当人们只是想要一个快速的答案时,不要写大量的指南,当人们想要购买一个产品时,不要试图对一篇博客文章进行排名。
LSI 和同义词的作用
前面我提到了 LSI 关键字。这代表潜在语义索引,这是谷歌说“同义词和相关关键词”的一种奇特方式。它们是在同一个主题中经常出现的单词,并且在语义上相互关联。
他们告诉搜索引擎你的内容是关于什么的是很重要的,因为同一个关键词可能有多种含义。
例如,假设你正在写一篇关于汽车的文章。你可以谈论五种不同的潜在“汽车”:
- 汽车,车辆
- 迪士尼动画电影《汽车总动员》
- 汽车,加拿大拉力运动协会
- 汽车,加拿大航空条例
- 汽车,美国 20 世纪 70 年代的乐队
谷歌怎么知道你说的是哪个版本的“汽车”?靠 LSI 关键词!看一看:
- 使用“车辆”、“二手”、“新”、“购买”、“出售”等词语。
- 使用“电影”、“电影”、“迪士尼”等字眼。
- 使用“协会”、“集会”、“运动”等词语。
- 使用“航空”、“管理”、“行政”等词语。
虽然 LSI 关键词在你的关键词研究中不一定重要,但在开发你的实际内容时却很重要。你应该在你的内容中自然地包含各种 LSI 关键字,而不是把它们塞进去,包括在标题和图片替换文本中。
你可以用类似于 LSI Graph 的工具找到 LSI 关键字(并了解更多)。
T3】
你是怎么做关键词研究的?(逐步指南)
好了,现在你已经对关键词研究背后的重要指标有了一个明确的理解,是时候真正找到你自己的关键词了!当我为一个新网站做关键词研究时,我会遵循三个步骤,还有一个可选的、更高级的第四步:
- 查找关键词创意
- 检查真实关键词难度和搜索量
- 确定他们的搜索意图
- (可选)查找和利用关键字仓库
让我们开始吧!
第一步:找到关键词想法
找到关键词想法是容易的部分。有很多工具,只要点击一个按钮,就会产生数百个想法。审查他们需要努力,但我们会做到这一点。
现在,去看看下面的“最佳关键词研究工具”部分,选择你的毒药。我将在示例中使用 Ahrefs,因为它是我最喜欢的工具,具有所有的功能,但其他工具也可以工作。
我最喜欢的方式来寻找伟大的关键字机会是刺探我的竞争对手。你可以将他们的网站插入任何关键词工具,然后查看他们的关键词。Ahrefs 有一个很棒的工具,叫做内容差距分析。
它是这样工作的:
1.将你的网站插入 Ahrefs,然后点击左边菜单中的内容间隙链接。

Ahrefs Content Gap
2.插入 1-10 个在谷歌上为你想要排名的关键词排名的竞争者。你可以通过谷歌搜索这些关键词,从谷歌上抓取网址,或者使用 Ahrefs 的竞争域名工具,就在内容差距链接的上方。运行该工具。

Ahrefs Keyword Research
3.如果愿意,您可以从这里将列表导出到 excel 电子表格。我喜欢在 Ahrefs 中梳理列表。如果我看到一个我可能想锁定的关键字,我会在一个新标签页中打开它,并使用右上角的+ Add to 按钮将其添加到关键字列表中。

Keyword List
如果你无法使用 Ahrefs 或其他关键字工具来查看竞争对手的关键字,你也可以使用 Keyword Shitter 这样的工具来给你大量的想法,然后使用其他免费工具如优步建议来审查它们。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
第二步:查看真实关键词难度和搜索量
一旦你有了一个你可以放心使用的关键词列表(我的目标是一次 50-100 个,但你可以做得更多),是时候根据关键词难度(KD)和搜索量来看看哪些是值得追求的了。
只有一个警告…你在大多数关键词研究工具中看到的搜索量和 KD 通常相差甚远。Ahrefs 中的 KD 仅仅基于链接到顶级结果的域的数量,这并不能 100%准确地描述一个关键词的真正排名难度。
这是因为 SEO 是一个复杂的野兽,像域名评级(我将很快介绍)和内部链接这样的事情会对排名产生巨大的影响。反向链接只是图片的一部分。
搜索量呢?那还不包括 LSI 和长尾关键词!
还记得我在本文开头给你看的那个露营装备的例子吗?main 关键字每月只有 2700 次搜索,但这篇文章每月的访问量超过 5000 次。那是因为它是针对主关键词之外的其他关键词的排名。
因此,如果你看到一个关键词每月有 200 次搜索,如果你包括相关的关键词,你的排名可能会达到 500 或 1000 次。
要确定真实的搜索量,在谷歌上抓取该关键词的#1 结果,并将其输入 Ahrefs 或优步建议,看看该页面实际获得了多少流量。这应该会给你一个给定关键字的搜索量的更准确的图片。
以下是排名第一的“小营员”页面的流量,这个关键词每月被搜索 3400 次:

True Search Volume
看看这个页面是如何获得超过 10k 的流量的,尽管主关键词只有它的三分之一?这才是真正的搜索量潜力。
另一个指标,关键词难度,也不是 100%准确。但是,找出真正的困难通常就像查看首页域名权威(DA)或域名评级(DR)一样简单,如果你使用 Ahrefs 的话。让我解释一下。
如果一个关键词的难度分数为 8,但排名靠前的页面都是 DR 80+,那么如果你的 DR 较低,尽管难度分数较低,但为这些关键词对你的网站进行排名可能会很困难。
我的建议是,如果你的 DR 在 40 以下,目标是 30 KD 或更低的关键词,然后随着你建立更多的链接和获得更高的权威而扩展。随着你的 DR 攀升,你的内部链接更有“链接价值”(或者传递更多的“页面权威”,取决于你听的是什么来源)。
但是这不是一篇关于技术性搜索引擎优化的文章,所以我现在就不写了!
步骤 3:确定搜索意图
在这一点上,你应该有一个相当不错的关键词列表,有一个你能轻松应对的困难和一个你乐于捕捉的潜在搜索量。现在是时候弄清楚人们在搜索这些术语时到底想要什么,以及它是否符合你的营销和收入目标。
这一部分就像谷歌搜索你列表中的每个关键词并查看前 3-5 个结果一样简单。查看他们的元标题和描述,点击他们查看页面,并检查他们在页面上采取的角度。
- 它们主要是列表文章吗?怎么做?终极指南?登陆页面?还有别的吗?
- 他们似乎是如何将页面货币化的?他们在使用展示广告吗?销售产品作为解决问题的方法?联盟营销?只是获取电子邮件,实际上不卖任何东西?
- 看看评论吧。人们在问文章中没有回答的问题吗?他们看起来是高兴、愤怒还是中立?
所有这些问题将帮助你了解你需要创建的帖子/页面的类型,你如何将其货币化(或使用它来捕捉电子邮件/推送通知订阅者/社交关注者),以及你可以做些什么来改善它。
当你浏览每一个关键词时,把你对这些问题的答案保存在一个电子表格或 word 文档中,以便跟踪你感兴趣的问题。你的最终清单是你可以开始追求的清单!
为了让你更好地了解如何确定搜索意图,下面是一些来自 Moz 帖子的例子:
信息意图:
- [产品名称]
- 什么是[产品名称]
- [产品名称]是如何工作的
- 如何使用[产品名称]
商业意图(又名研究意图):
- 最佳[产品名称]
- [产品名称]评论
- 比较[产品名称]
- 什么是顶级[产品名称]
- [颜色/款式/尺寸][产品名称]
交易意向(又名购买意向):
- [产品名称]的价格是多少
- [位置]中的[产品名称]
- 在线订购[产品名称]
- [产品名称]我的附近
- 实惠的[品牌名称][产品名称]
来自 Ahrefs 的图表也有帮助:
厌倦了你的 WordPress 站点缓慢的主机?我们提供超快的服务器和来自 WordPress 专家的 24/7 世界级支持。查看我们的计划

Ahrefs Search Intent Chart
现在拿着你的清单,去做一些内容吧!或者,您可以遵循最后一个步骤。
步骤 4:(高级)找到并利用关键词仓库
如果你真的想做得更好,你可以有选择地更进一步,在你的网站上寻找关键字筒仓来创建相应的内容筒仓。
关键词仓是一个高度相关的关键词列表,您可以围绕它创建内容,以便在您的站点上相互链接(也称为“中心辐射”方法)。这是我制作的一个视频来帮助你理解:

Hub and Spoke Method of Content Marketing
本质上,你创建一个针对你想要排名的主要头项的中心页面,然后基于相关和长尾关键词创建“分支”页面。
例如,在为我妻子 Kayla 的素食食品博客做关键词研究时,我发现了一系列相关的关键词,问“是 __ 素食主义者吗”。人们想知道普通食物,如百吉饼、油炸圈饼或奥利奥是否是纯素食者。
为了对这些关键词进行排名,我们创建了这个中心页面,链接到她所有的“Is ___ vegan”文章。这些文章相互链接,并返回到主页面。

Content Silo
这种相互链接被称为内容孤岛,它之所以如此有效有两个原因:
- 因为所有的页面都是相互链接的,所以如果你建立了到任何一个页面的链接,就会提高所有其他页面的权威性。
- 谷歌在它的算法中使用了相关性,因为这些主题彼此高度相关,它可以进一步提高你的排名。
那么如何找到关键词筒仓呢?没有灵丹妙药——你必须善于发现模式并注意相关性。然而,有一个技巧可以让你试着找到它们:书。
在亚马逊上寻找与你的主题相关的书籍,并浏览目录。通常情况下,书籍充满了关键词筒仓:这就是为什么他们是一本书!把装订看作是中心页面,把章节看作是分支页面。

Keyword Silo Ideas
当然,正如你在上面的例子中看到的,这些关键词并不完全是人们在谷歌上搜索的。人们输入的不是“世界上的素食主义者”,而是“如何在餐馆吃素食”或“如何在家庭聚会上吃素食”。所以你可能需要做一些调查,找出与你找到的书的章节标题相对应的关键词。
一旦你发现一个潜在的筒仓,在你提交之前,一定要通过步骤 2 和 3 运行关键字!仅仅因为你发现了一个筒仓,并不意味着你应该追求它。从逻辑上思考所有这些内容如何适合你的业务,以及你将来如何扩展这些内容。
最好的关键词研究工具是什么?
有几十个,如果不是数百个关键词研究工具在市场上今天。有些非常独特,但大多数只是在相同的想法上略有不同。那么最好的是哪一个呢?让我们用免费和付费工具来分解一下。
免费关键词研究工具
我用过并推荐两个免费的关键词研究工具:
- Ubersuggest
- 关键词快门
Ubersuggest

Ubersuggest
让我们暂时搁置所有关于尼尔·帕特尔的转换。这个工具完成了它的工作,如果你预算有限,它可以帮助你开始 SEO。
Ubersuggest 基本上是 Ahrefs 或 Moz 的免费缩小版。它可以让你窥探竞争对手的反向链接,看看他们的关键字排名,并做一些像样的关键字研究。如果你在预算范围内做搜索引擎优化,它可以完成工作。
关键词快门

Keyword Shitter
关键字 Shitter 听起来很像。你输入一个关键词,就会得到数百个关键词建议。如果你只是需要大量的想法,这是很好的,但它通常只会吐出与你输入的关键词相关的关键词,而不是独特的、独立的想法。
付费关键词研究工具
现在我们进入大男孩(或女孩)工具!如果你对 SEO 很认真,并且有预算,这些是你想要使用的工具。
- Ahrefs
- 塞姆拉什
- 关键词洞察
- 关键词无处不在
Ahrefs

Ahrefs
Ahrefs 是我最喜欢的 SEO 工具;不仅仅是关键词研究,还包括链接建设、排名跟踪、内容创意等等。它拥有所有的功能,是市场上最好的全方位搜索引擎优化工具。然而,它的价格很高,仅基本工具每月就要 99 美元。
塞姆拉什

SEMrush
SEMrush 是另一个伟大的关键词研究工具。它比 Ahrefs 更实惠,但没有那么多功能。它更倾向于搜索引擎营销和点击付费(因此 SEM 在 SEMrush)。然而,如果你想要一个很棒的付费工具,但不想为 Ahrefs 支付额外费用,这是一个有效的选择。它甚至让你免费试用产品!
关键词洞察
Keyword Insights
Keyword Insights 声称是“对关键字进行分组并对搜索意图进行大规模分类的最聪明的方法”…这是有充分理由的。该工具利用特定地理位置的实时搜索引擎结果页面数据将关键词聚类到相似的组中,同时还可以计算出它们背后的搜索意图。
用户只需上传一个关键词列表(你想上传多少就上传多少),该工具就会给出一个预先格式化的 Google sheets 文档,其中包含聚集的关键词和意图。其最近的更新还将分组的关键词分类为“顶级主题”,这样你就可以看到它们的内容枢纽应该是什么,以及它们的发言内容可能是什么样子。洞察还会告诉你哪些关键词可以作为单个页面的目标,或者哪些关键词需要分成多个页面。
关键词无处不在

Keywords Everywhere
关键词无处不在是一个很棒的工具,以前是免费的,现在是基于信用的。每当你输入一些东西,这个工具就会显示你在谷歌上的搜索量、竞争对手和平均点击费。它还显示了相关关键词和“人们也搜索”关键词的统计数据。不管你使用其他什么工具,我都强烈推荐使用这个工具。
想要更多的 SEO 工具?查看 Kinsta 为 WordPress 列出的必备 SEO 插件列表。
建议的堆栈
那么应该获得哪些关键词研究工具呢?我建议的堆栈是 Ahrefs 和 Keywords Everywhere。Ahrefs 是一个完整的 SEO 软件,它将帮助你对你的网站进行排名,而不仅仅是查找关键词。“关键词无处不在”让你在谷歌上搜索的任何时候都能看到搜索量和关键词的想法。再加上是免费的,有什么不喜欢的呢?
摘要
以下是我们所学内容的快速回顾:
- 关键词研究对任何搜索引擎优化活动都非常重要,不应该被忽略或轻视。
- 搜索量和关键词难度可能具有欺骗性。做一些更深入的研究,在你做决定之前,在谷歌上输入关键词并查看结果。
- 不要被低搜索量所迷惑。通过使用 Ubersuggest 或 Ahrefs 查看热门页面搜索流量来检查真实的搜索量。
- 搜索意图才是王道。确保你创建的内容与人们想看的内容(以及谷歌已经在展示的内容)相匹配。
- 寻找关键词筒仓。它们可以成为快速排列网页的捷径。
这就是全部了!如果你有任何问题,欢迎在下面留言或发邮件给我。要获得更多关于 SEO 的帮助,点击这里阅读我的逐步指南和这个关于如何给你的网站带来更多流量的很棒的深度指南。
祝你好运!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
金斯塔在感恩节为 300 名无家可归者提供食物
原文:https://kinsta.com/blog/kinsta-feeds-homeless-thanksgiving/
在金斯塔,我们尽力回馈社区。仅今年一年,我们就在奥兰治县、东京、悉尼、达拉斯、里约热内卢、纳什维尔、凤凰城、西雅图、斯德哥尔摩、日内瓦、乌代布尔、圣保罗和巴塞罗那赞助了单词营。我们还赠送了一份奖学金给我们参加单词营。但有时我们也会回馈非 WordPress 社区。

今年,我们决定为洛杉矶的无家可归者提供食物,向美国最大的食物银行之一第二丰收组织捐赠食物。
我们去了好市多,买了 200 份土豆泥、红薯、面包卷、馅料和烘豆。最后在捐赠现场称了 140 磅的食物,他们说因为我们捐赠了这么多东西,如果加上他们每年收到的火鸡捐赠,他们可以轻松地做 300 顿饭。

如果你的公司想做类似的事情,这里有一些建议。
首先,如果你的团队中有人有好市多或山姆的卡,无论你的预算是多少(我们花了几百),它都会让你得到比一般杂货店多得多的食物。
第二,如果你要提前购买,一定要检查保质期,以确保食物至少能保存到感恩节之后几天。
第三,你很可能想把重点放在不需要冷藏的物品上,所以这就是我们所做的。像火鸡这样的东西通常是由专业的大型供应商在当天送达的,因为许多避难所缺乏额外的冷藏空间。
最后,在你去购物之前,一定要打电话给收容所,问问他们需要什么。我们做到了,而且效果很好。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
金斯塔雇佣布莱恩·杰克逊帮助制定入境策略
原文:https://kinsta.com/blog/kinsta-hires-brian-jackson-inbound-strategy/
Kinsta 非常高兴地欢迎 Brian Jackson 加入我们的团队,成为我们新的集客营销总监。他将帮助我们的在线发展战略、销售线索生成、内容创建、技术搜索引擎优化以及 WordPress 社区内的拓展。
Brian 从 KeyCDN 来到我们这里,在那里他花了一年的时间帮助创建战略性内容,产生销售线索,并在 web 性能行业中拓展业务。在加入 KeyCDN 之前,Brian 在一家医疗广告公司担任 SEO 和 PPC 专家,负责管理超过 50 万美元的年度广告支出。在最初的 6 个月里,他帮助他们的客户增加了 346%的网络推荐,同时减少了 315%的 CPA。他在 SEO 和 WordPress 社区非常活跃,在 Moz、Ahrefs、Torque、codeinwp、WPExplorer、WP Dev Shed 和 WP-Tonic 等网站上都有介绍。
谈到 WordPress,Brian 并不陌生。他用它建立网站已经超过 8 年了,他所做的一切都围绕着它。晚上,你会发现他在 woorkup.com 上写关于 WordPress 产品和服务的博客,或者在开发他和他兄弟开发的高级 WordPress 插件 WP 优惠券。简单地说,他对一切事物都有一种般的巨大热情。
具有讽刺意味的是,Brian 实际上是我们推出时 Kinsta 的第一批客户之一!所以对我们来说,这种关系是在过去几年中形成的。他已经为 Kinsta 带来了新的客户,因此让他加入团队与我们的发展战略以及他能为团队带来的技能完全吻合。
Brian 还拥有非常强大的技术和支持背景。在他的职业生涯中,他担任过各种职务,包括 IT 服务台、IT 主管、IT 服务器管理员和 PeopleSoft 安全管理员。Brian 告诉我们,这种多元化的背景帮助他比大多数人更好地将数据和转化驱动的策略应用到他的在线营销中。
说到营销,你做的每一件事背后都应该有原因;无论是产生线索,搜索引擎流量,还是品牌知名度。布莱恩
Brian 毕业于 Walla Walla 大学,获得新媒体图像学士学位,包括网页和平面设计,还辅修了工商管理。布莱恩来自阳光明媚的亚利桑那州斯科茨代尔,他喜欢在业余时间看电影、游泳、骑自行车、写博客和浏览网站。
布莱恩在推特上最活跃,你可以和他联系。
我们很高兴你加入了我们的团队。欢迎加入布莱恩! 请帮助我们欢迎 Brian 加入 Kinsta 团队!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
金斯塔·金并:凯文·桥史访谈
原文:https://kinsta.com/blog/kinsta-kingpin-interview-with-kevin-ohashi/
Q1:你能简单介绍一下你的业务背景吗?
我创造并经营了 ReviewSignal.com。这是一个数据驱动的评论网站。我这样称呼它是因为它的运作方式不同于我们传统上认为的评论网站。它提取人们在社交媒体上公开发布的评论,并自动进行分类和分析,以了解人们对虚拟主机公司的看法。本着这种精神,我也写了很多数据驱动的博客,测试和分析虚拟主机公司。我做的最受欢迎的事情是我的年度 WordPress 主机性能基准文章,在这篇文章中,我详尽地测试了 WordPress 主机业务中的所有大牌,看看他们彼此之间的比较如何。
Q2:你在 WordPress 工作了多久,是什么让你对它充满了好奇?
我使用 WordPress 已经有 5-10 年了。我不确定我是什么时候开始接触它的。我从 1996 年开始建立网站,从那以后我使用了大量的 CMS,WordPress 在开始的时候有一个简单的吸引力。对于建立基本的网站来说,与其他选择相比,它真的非常简洁和容易。
你觉得 WordPress 有什么令人惊讶的地方吗?
生态系统变得有多大。令人惊讶的是,它驱动了多少网站,多少人创建插件/主题,仅仅依靠开源软件谋生。看到它对网络的影响真的很令人着迷。
Q4:你觉得主机行业有什么令人惊讶的地方吗?
它有多可怕。我开始创业是因为在虚拟主机行业工作了十年之后,仍然没有一个诚实的虚拟主机评论网站让我放心推荐给别人。在运营我的网站 4 年后,很容易理解为什么。
我经常收到虚拟主机公司给我发的邮件,试图贿赂他们,让他们被评为最好的。最糟糕的是,他们中的大多数人甚至不隐藏它。这种行为对他们来说是正常的。因此,最令我惊讶的是,我经常对这个领域中许多公司的行为感到厌恶。这并不是说没有一些很棒的公司,但它们似乎是少数。最糟糕的是,这些欺诈/恶心的策略看起来非常有效,而真正的好人却因此打了一场更糟糕的硬仗。
与现在相比,托管行业应该如何运作?
创新似乎真的停在了市场的底端。10 年前有一个 cPanel 托管账户,今天感觉也一样。我们看到了像 WordPress 托管这样的利基托管解决方案的爆发。我们看到了开发者托管选项的巨大改进和变化,通常称为云之类的。但底层的普通消费者还没有从中获益,我不确定我看到了多少创新。该领域最大的挑战者/创新者可能是 SquareSpace/Wix/Shopify/等公司,它们正把人们从拥有自己的主机服务中拉出来,转而被 SaaS 的产品所吸引。他们提供的体验往往比简单地获得一个虚拟主机账户和一套复杂的自行安装应用程序选项要好。
既然你已经广泛地使用了负载测试,对于扩展应用程序有什么一般的建议吗?
我喜欢扩展和性能。这两种策略是:我能让它更快吗?或者我能让它并行化吗?让它变得更快可以是任何事情,从编码优化,我正在努力做的事情,到缓存,再到简单地购买更快的硬件。就性能优化而言,缓存通常给我们带来最轻松的结果。但是整个思考过程就是,我怎么才能让这个跑快一次或者多次。一旦你超越了基本的速度提高,它通常会变得更加深思熟虑,在哪些方面可以使应用程序运行得更快。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
第二种策略是并行化。我的应用程序可以在 Y 时间内完成任务 X。在线性世界里,如果我需要做 X 10 次,需要 10Y 次。如果我可以将其并行化,并拥有应用程序的两个实例,则需要 5 年时间(10 倍任务/ 2 个实例)。这种策略可以应用于整个应用程序,这在负载平衡的 web 设置中很常见,其中多个服务器响应网站请求。在服务器之间分担负载,您可以处理更多的请求。如果您可以分解不相互依赖的组件,它也可以应用于应用程序的各个部分。但是这要复杂得多,可能超出了本文的讨论范围。
旅行似乎是你的事情。你去过哪些国家,如果只能选一个你会回哪个国家?
我想这些天我会被归入所谓的数字流浪者。在过去的几年里,我每年都会花 4-6 个月的时间环游世界。我计划从明年开始进行一次不确定的旅行。我大概去过 35-40 个国家,就不一一列举了。不过今年我去了泰国、柬埔寨、日本、瑞典、丹麦、荷兰、卢森堡、比利时和捷克共和国。
至于只选择一个,那就很难了。我将返回泰国开始我的无限期旅行。在泰国的安达曼海边,有一个我非常喜欢的岛屿,我已经去了好几年了,它叫兰达岛。它有一个叫做 KoHub 的奇妙的共同工作空间,这是我在泰国经历过的最好的潜水,还有美妙的海滩。今年我在那里呆了两个半月,我非常喜欢那里。那就是我开始冒险的地方。二号目的地是捷克共和国的布拉格。我爱这座城市,它美丽、有趣、实惠。
华盛顿特区的科技/创业公司是什么样的?你和这件事有任何关系吗?
最好的回答是说它很棒,每个人都应该来 DC。但这是一个谎言。我认为它很平庸,正在走下坡路。这个地区肯定有一些成功和有前途的创业公司,但这是任何一个拥有大量人口、大量大学、美国教育程度最高的城市和大量资金的地区都应该有的。鉴于它拥有所有这些东西,我对来自 DC 的非常成功的创业公司如此之少感到失望。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
上一家来自 DC 的“独角兽”创业公司是 Living Social,但在交易泡沫破裂后,它似乎陷入了困境。有一批与安全相关的初创公司正在悄悄地做得非常好,比如去年以$1B 的价格出售的 Mandiant。DC 科技领域的另一个亮点是对社会影响和公民黑客行为的关注。这两个问题似乎越来越严重,而且非常重要。在 DC 有很多聪明人在这些领域解决问题是很棒的。
因此,DC 的一些利基市场似乎正在蓬勃发展,但这通常都与政府有关。但对于消费者/b2b 科技创业公司来说,我认为情况更糟。创业人士参加的科技活动数量似乎在减少。黑客马拉松比几年前少了。我们不再有庆祝 DC 科技界的 DC 周。许多曾经免费举办与科技相关的大型活动的公司和空间已经停止或希望收取巨额费用。
当我还是一个现已不存在的共同工作空间的成员和董事会成员时,我曾经参与更多。我会定期主持一些每月一次的技术和创业相关的活动,比如 DC Drupal 实验室和 DC 夜猫子。这些天,我参加了一些活动,并帮助朋友们举办一些当地活动,如 DC 创业周末。
托管行业的未来会是什么样子?
低端将是一场底部竞赛,你的大品牌将在这里大规模生存。我认为还在 cPanel/generic 共享主机游戏中的中产阶级提供商将被慢慢消灭/停滞。你会看到服务提供商越来越专业化。
WordPress 托管仅仅是一个开始,我认为你将会看到每种类型的利基托管越来越多的竞争。我认为 SaaS 的平台即服务提供商将会涌现出来支持各种利基市场。我看到越来越少的人只是在寻找“主机服务”他们想要<的东西>托管。WordPress 托管。Drupal 托管。NodeJS 托管。Ruby on Rails 托管。我不确定我们是否会再次看到 cPanel 级别的关于托管的报道,每个人都有一个解决方案。我认为我们会看到较小的专业公司收取较高的价格,并(希望)提供更好的服务,而大型主机以足够低的价格提供这些技术的基本覆盖水平,以留住足够多的人。
你和你的企业的未来会是什么样子?
对我来说,这是旅行,并试图找到一个我快乐和富有成效的社区。对我的业务来说,就是查看数据,讲述数据驱动的故事,并继续尝试将大数据引入网站托管评论。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
如何阻止谷歌分析中的语言垃圾
没有人喜欢垃圾邮件,这可能会让网站所有者非常沮丧,因为它通常需要花时间来设置过滤器,并研究阻止垃圾邮件的最佳方法。
到目前为止,许多人已经习惯于处理推荐垃圾信息,因为这是困扰我们多年的问题。然而,在过去的几个月里,出现了一种新的解决方法,那就是大家现在所说的“T2”语言垃圾邮件“T3”。
你们大多数人可能在 2016 年美国大选前后开始注意到这一点。请遵循我们下面的教程,了解阻止语言垃圾的最佳方式,并防止它扭曲你的流量和分析统计数据。一旦这些问题开始出现,立即解决是非常重要的。
68% of a WordPress site's traffic we tested was from language spam. 😱 Combat it now.Click to Tweet
- 什么是语言垃圾邮件?
- 如何在谷歌分析中拦截语言垃圾
什么是语言垃圾邮件?
虽然推荐垃圾邮件主要针对搜索引擎,但语言垃圾邮件通常被垃圾邮件发送者用于特定目的或推广他们自己的网站或产品。所发生的是他们操纵真实网站使用的语言,如 motherboard.vice.com、thenextweb.com、lifehacker.com、reddit.com 等。语言垃圾邮件通常只在你网站的主页上注册浏览量。
他们能得到什么?来自 Dowser 的 Peter Velchev 很好地解释了这一点:
这背后的想法是,一旦你看到新访客的网址,你可能会忍不住追踪到它的来源。这反过来会产生对黑客网站的实际访问,从而推动其评级阶梯上升…

Language spam referral source
语言垃圾可以在你的仪表盘上的谷歌分析中看到,或者在“受众>地理>语言”部分下看到。以下是您最近可能在报告中看到的一些语言垃圾邮件攻击的例子:
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
- Secret.ɢoogle.com 你被邀请了!仅使用此票证 URL 进入。复制它。投票给川普!
- 祝贺特朗普和所有美国人
- 维塔利统治谷歌☆:。゜゚・ヽ(ᴗ)ノ・゜゚。:☆_(ツ)_/(ಠ益ಠ)(ಥ‿ಥ)(ʘ‿ʘ)ლ(ಠ_ಠლ)(͜͡ʖ͡)ヽ(゚д゚)ノʕ•̫͡•ʔᶘᵒᴥᵒᶅ(=^ ^=)oo
- o-o-8-o-o.com 搜索壳比谷歌好得多!
- 谷歌官方推荐 o-o-8-o-o.com 搜索外壳!
谷歌显然正在解决这个问题,但是越来越多的问题不断出现。一旦一个停止,另一个似乎开始。

Google Analytics language spam
这是在一个全新的网站上拍摄的截图,如你所见,在 11 月 1 日至 12 月 17 日期间,1377 个会话中有 929 个来自语言垃圾邮件!谈谈扭曲你的数据。

Language spam traffic
语言垃圾问题在 11 月 9 日的搜索引擎圆桌会议上被提出。如果我们看一下谷歌趋势,我们可以看到从 2016 年 11 月开始,围绕“谷歌垃圾分析”的活动激增。

Google Analytics spam trends
为什么要屏蔽语言垃圾?
阻止语言垃圾的第一个原因显然是不要完全扭曲你的分析数据,如上所述。如果你想使用你的访问者的语言数据,比如说在一个多语言的 WordPress 设置中,那么你希望数据是准确的。
另一个很多人没有意识到的重要原因是谷歌分析过滤器不能追溯应用。这意味着过滤器仅适用于从过滤器创建之日起收集的数据。这就是为什么立即解决垃圾邮件问题很重要。历史数据不能用过滤器来修复。然而,这样做的缺点是,如果您错误地实现了过滤器,您可能会永远丢失有价值的数据。还有高级段可以帮助你处理历史数据,我们将在下面详细介绍。
如何阻止谷歌分析中的语言垃圾
在谷歌分析中处理语言垃圾有几个选择。我们不一定推荐使用插件,因为通常在接近问题根源的地方使用会更好。还有,外挂很难消除幽灵下线。在处理、过滤和分割数据方面,谷歌分析实际上非常强大。通过不使用插件,你可以确保无论你的网站安装发生什么情况,过滤器/片段都不会被移除。
选项 1:用过滤器阻止语言垃圾邮件
在 Google Analytics 中阻止语言垃圾的第一个也可能是最简单的方法是使用过滤器。过滤器允许您修改和限制数据。例如,您可以从特定 IP 或 IP 范围中排除某些子目录、白名单流量等。我们建议您在创建过滤器时设置一个新的视图,因为如果出现任何问题,您应该始终可以访问您的原始数据。然后将所有自定义过滤器应用于新视图。
第一步(可选)
第一步是复制当前视图,这样就可以只在单独的视图中筛选数据。为了您的安全,这是可选的。您可能已经有了一个单独的视图,在这种情况下,您可以跳到步骤 2。否则,点击进入谷歌分析的管理部分,进入你当前的“视图设置”然后点击“复制视图”你之所以要使用 copy,是因为它会延续你网站上已经有的其他过滤器和目标。

Copy view in Google Analytics
命名您的新视图。在我们的示例中,我们选择“filtered domain.com”,然后单击“Copy view”
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!

Copy view
第二步
点击进入新的过滤视图(或原始视图)并点击进入“过滤器”然后点击“+添加过滤器。”
You will need “Edit” access at the “Account” level in Google Analytics in order to set up new filters, or you won’t have the ability to follow through on these next steps.

Add new filter in Google Analytics
第三步
给你的过滤器一个名字(例如:过滤语言垃圾邮件)。然后从过滤器类型中选择自定义。您需要选择“语言设置”过滤器,并在过滤器模式字段中输入以下内容:
.{15,}|\s[^\s]*\s|\.|,|\!|\/

Language spam filter
然后,您可以单击“验证”按钮,查看过滤器在过去 7 天中发现的内容示例。然后单击“保存”以应用过滤器。

Verify language spam filter
就是这样!你现在只能在谷歌分析中看到有效的/真实的语言。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
选项 2:用高级段拦截语言垃圾邮件
在谷歌分析中,对抗语言垃圾的第二个选择是使用高级段。这些实际上与您的历史数据一起工作,并且通常被认为是更改您的数据的更安全的选择,因为它们不会改变任何东西。您可以随时取消激活它们以返回到以前的状态。然而,如果你使用一个带有过滤器的单独视图,就像我们上面展示的那样,这也是安全的。
第一步
要创建一个细分市场,请点击谷歌分析的管理部分,进入“细分市场”然后点击“+新细分。”
Just like with filters, you will need “Edit” access at the “Account” level in Google Analytics in order to set up new filters, or you won’t have the ability to follow through on these next steps.

Create segment in Google Analytics
第二步
为您的段命名(例如:段语言垃圾邮件),在语言字段下,将下拉列表更改为“不匹配正则表达式”,并输入以下内容:
.{15,}|\s[^\s]*\s|\.|,|\!|\/
然后点击“保存”

Language spam advanced segment
仅此而已。然后,您可以在 Analytics dashboard 上选择该语言段,并删除“所有用户”请记住,数据段会实时修改数据。提示:您可以使用已经应用的新细分创建自定义仪表板/快捷方式,以便以后快速查看。

View segment in Google Analytics
选项 3:用第三方列表阻止语言垃圾邮件
垃圾邮件最令人讨厌的一点是,对于我们这些网站所有者来说,这很费时间。我们必须不断更新我们的细分市场和过滤器,以确保我们的数据尽可能准确。但是,如果您没有时间,也有一些资源和第三方工具可以帮助您加快这个过程。以下是你可能想看看的几个选项:
- Analytics-Toolkit:这家公司提供了一个他们称之为的自动垃圾邮件过滤器,它会为你不断更新。
- Analytics Edge 有免费的预建段,您只需点击一下即可使用。这些也在不断更新。
如果你有兴趣更深入地了解如何最好地从 Google Analytics 中删除垃圾邮件,以下这些教程很棒:
摘要
如您所见,过滤和排除这种新的语言垃圾邮件策略非常容易。我们建议浏览您网站上的分析,并确保您的数据没有失真。你对语言垃圾有什么看法?我们发现这简直是令人讨厌,希望在未来谷歌可以帮助打击更多的这种无用的数据,企业主现在不得不处理。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
Laravel 9 的新特性:深入了解最新的主要版本
多年来,Laravel 一直是最受欢迎的 PHP 开发框架之一。它优雅、可伸缩,已经成为开发人员和使用 PHP 的公司事实上的框架之一。Laravel 9 是其最新发布的版本,具有许多新功能。
在过去,每六个月就会有新的 Laravel 发布,导致了大量的问题、苛刻的评论和对 Laravel 新发布过程的困惑。随着 2022 年 2 月 Laravel 9 的发布,该框架进入了 12 个月的主要发布周期。
本文探讨了 Laravel 9 的主要特性。除此之外,我们还将详细介绍如何升级到 Laravel 9 并开始开发 web 应用程序。
T3】
什么是 Laravel?
Laravel 是一个开源的 PHP web 应用程序框架,以其优雅的语法而闻名。这是一个使用 PHP 编程语言构建简单到复杂的 web 应用程序的 MVC 框架,它严格遵循 MVC(模型-视图-控制器)架构模式。
如果你还没有使用过 Laravel,你可以阅读什么是 Laravel并查看我们的优秀 Laravel 教程列表来开始使用。
Laravel 9 来了,还有很多要拆包的!🎒在本指南的帮助下深入了解👇 点击推文
Laravel 的主要特点
如果你是这个框架的新手,我们已经整理了一些最好的 Laravel 特性,让你有更好的理解。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
Laravel features in bubbles. (Image source: Moon Technolabs)
雄辩的 ORM
Laravel 的对象关系映射器(ORM)被称为雄辩的,这是 Laravel 的最佳特性之一,因为它允许与数据模型和选择的数据库无缝交互。
借助雄辩,Laravel 抽象出了涉及与复杂的 SQL 查询交互和编写复杂的 SQL 查询以从数据库中访问数据的每一个障碍。
Artisan CLI
Artisan CLI 或命令行是 Laravel 的另一个重要方面。有了它,您可以从命令行创建或修改 Laravel 的任何部分,而不必浏览文件夹和文件。
使用 Artisan,您甚至可以使用 Laravel Tinker 从命令行直接与数据库进行交互,而无需安装数据库客户端。
MVC 架构
Laravel 的 MVC 架构本质使得这种语言具有相关性和适应性,因为它遵循了一种流行的 web 开发模式,并不断进行重大改进。
Laravel 会强迫你学习和理解 MVC 架构模式,这种模式在几乎所有框架中都很流行和使用,比如 JavaScript 的 AdonisJS 和 C#的 ASP.NET MVC。
T3】
自动分页
如果您曾经在应用程序中挣扎过分页,那么您将会理解通过内置框架整理分页的价值。
Laravel 通过构建开箱即用的自动分页解决了分页问题。这个特性是它最受认可的特性之一,它消除了自己解决分页之谜所涉及的工作。
安全性
仔细检查你正在考虑使用的任何网络应用程序的安全措施是很重要的,因为缺乏尽职调查会导致资金损失,甚至劫持你的网站或产品。
由于 Laravel 遵循了 OWASP 安全原则,因此它提供了许多安全措施。从跨站请求伪造(CSRF)到 SQL 注入,Laravel 有一个内置的解决方案。
Laravel 9 的新功能
原定于 2021 年 9 月发布的 Laravel 9 版本被推迟到 2022 年 1 月(以及 2022 年 2 月晚些时候),这使得它成为继 12 个月的发布周期之后推出的第一个长期支持(LTS)版本。这种延迟是由多种原因造成的,包括但不限于以下原因:
- Laravel 使用各种社区驱动的项目和大约 9 个 Symfony 库。然而,Symfony 计划在 2021 年 11 月发布 6.0 版本。延迟将允许 Laravel 团队将这个新版本的 Symfony 作为 Laravel 9 的一部分。
- 这一延迟将为团队提供两个月的时间来监控 Laravel 如何与 Symfony 的新版本进行交互。这也给了他们修正任何重大变化或错误的空间。
- 最后,延迟 Laravel 9 可以更好地为 Laravel 团队将来的年度发布做准备。Symfony 发布后,将会给团队两个月的额外加速时间。
基于这些原因,你可以看到发布延迟是值得等待的。
Kinsta 允许您为您的产品运行 Laravel,尽管我们的团队并不正式支持它。
Laravel 9 中的新功能
现在,让我们来看看 Laravel 即将发布的主要版本中的特性和改进列表。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
最低 PHP 要求
首先也是最重要的,Laravel 9 需要最新的 PHP 8 和 PHPUnit 8 进行测试。这是因为 Laravel 9 将使用最新的 Symfony v6.0,它也需要 PHP 8。
PHP 8 有显著的改进和特性,从 JIT 编译到构造函数属性提升。你可以在我们的博客上探索不同的 PHP 版本基准测试,并学习如何从 T2 升级到最新的 PHP 8。
匿名存根迁移
Laravel 将匿名存根迁移设置为运行常用迁移命令时的默认行为:
php artisan make:migration
匿名存根迁移特性在 Laravel 8.37 中首次发布,以解决这个 Github 问题。问题是,当试图从头开始重新创建数据库时,具有相同类名的多个迁移可能会导致问题。新的存根迁移功能消除了迁移类名冲突。
从 Laravel 8.37 开始,框架现在支持匿名类迁移文件,在 Laravel 9 中,这将是默认行为。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('people', function (Blueprint $table)
{
$table->string('first_name')->nullable();
});
}
};
新的查询生成器界面
有了新的 Laravel 9,类型提示在他们的ide中对于重构、静态分析和代码完成是高度可靠的。由于在查询\构建器、雄辩\构建器和雄辩\关系之间缺乏共享接口或继承。尽管如此,有了 Laravel 9,开发人员现在可以享受新的查询构建器接口,用于类型提示、重构和静态分析。
<?php
return Model::query()
->whereNotExists(function($query) {
// $query is a Query\Builder
})
->whereHas('relation', function($query) {
// $query is an Eloquent\Builder
})
->with('relation', function($query) {
// $query is an Eloquent\Relation
});
这个版本增加了新的Illuminate\Contracts\Database\QueryBuilder interface,以及将代替__call魔法方法实现接口的Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder特征。
需要为您的电子商务网站提供超快的、可靠的、完全安全的托管服务吗?Kinsta 提供了所有这些以及来自 PHP 专家的 24/7 世界级支持。查看我们的计划
PHP 8 字符串函数
由于 Laravel 9 的目标是 PHP 8,Laravel 合并了这个 PR ,建议使用最新的 PHP 8 字符串函数。
这些函数包括在\Illuminate\Support\Str类内部使用str_contains()、str_starts_with()和str_ends_with()。
上面列出的 Laravel 9 的特性和改进是对即将到来的事物的一个先睹为快。它肯定会带来许多 bug 修复、特性,当然,还有许多突破性的变化。
如何安装 Laravel 9
如果您想开始使用 Laravel 9 进行开发和测试,您可以很容易地在本地机器上安装并运行它。
Laravel 9 支持 PHP 版本 8,所以如果你打算测试它,确保检查你的 PHP 版本或者启动全新安装。
你可以通过 Packagist 找到关于发布的更多细节。
要使用 composer 安装 Laravel 9,请运行以下命令:
composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-develop
上面的命令将创建一个新的 Laravel 项目,项目名为laravel-9-dev,使用最新的 Laravel 9,正如我们所知,它仍在开发中(因此为dev-develop)。
第二种方法是使用 Laravel 全局 CLI 创建一个新的 Laravel 项目,并选择从 dev 分支创建您的新项目。
输入以下命令创建一个新的 Laravel 9 项目:
laravel new laravel-9-dev --dev
现在您已经安装了 Laravel 9,您可以进入新目录(laravel-dev)并执行 artisan 命令来检查版本:
cd laravel-9-dev
php artisan --version
它应该向您展示 Laravel 9 的开发版本。瞧啊。
就在这里!😄在这本大型指南中获取所有关于 Laravel 9 的独家新闻💥
摘要
Laravel 是一个引人注目的 PHP 框架,越来越受到开发人员的关注。Laravel 9 是 12 个月发布周期后的第一个版本,我们已经可以体验到它“有趣”的新功能。
Laravel 团队可能会在未来宣布新的特性和更新。因此,请确保将这篇文章加入书签,因为我们将在未来的更新中涵盖它们。
现在,轮到你了!你对 Laravel 9 最期待的是什么?请在评论区告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
关于 Laravel 缓存您需要知道的一切
缓存对于实现高性能和可伸缩性至关重要。从开发阶段就实施正确的缓存策略对于避免滞后的 API 和缓慢的页面加载时间至关重要。Laravel 是最流行的 PHP 框架之一,因此实现最佳的 Laravel 缓存策略对于更好的用户体验和更大的业务影响是不可或缺的。
在本文中,我们将探索在 Laravel 中实现和操作缓存的策略。您将了解 Laravel 缓存如何工作,几个 Laravel 缓存查询,以及如何在 Laravel 应用程序上处理缓存。
如果您已经对以下内容有了基本的了解,那么您将从这篇文章中获得更多:
让我们开始吧!
查看我们的视频指南到 Laravel 缓存
为什么缓存很重要?
随着最近互联网业务的蓬勃发展,不同公司的统计数据显示,网站加载时间和低性能如何严重影响 SEO、用户参与度和没有缓存的对话率。这从一个优秀的缓存策略开始。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
一项在线研究发现“1 秒钟的加载延迟时间会让亚马逊每年损失 16 亿美元的销售额。”
另一项谷歌研究报告“我们的研究表明,如果搜索结果慢了甚至几分之一秒,人们就会少搜索(说真的:一个400 毫秒的延迟会导致0.44%的搜索量下降,数据粉丝)。这种不耐烦不仅限于搜索领域:如果视频在加载过程中出现停滞,五分之四的互联网用户会点击离开。
网页加载时间稍有迟缓,就会对用户体验造成巨大影响,并导致大量资金损失。
什么是 Laravel 缓存?
Laravel 提供了一个健壮且易于使用的缓存实现和不同的缓存后端。使用 Laravel cache,您无需编写任何代码,就可以高效地在许多缓存引擎之间进行切换。
您可以在**config/cache.php**文件夹中找到 Laravel 缓存的配置,尽管您可能只需要。env 文件在不同的缓存后端之间切换。
Laravel cache 还提供了许多实用的方法,我们可以用它们来实现不同的缓存策略。
Laravel 高速缓存驱动程序和比较
Laravel cache 提供了优秀的缓存后端和驱动程序。根据您的使用情况,您可以在它们之间切换,以提高您的应用程序性能和加载时间。
也就是说,Laravel cache 还提供了一种无缝的方式来创建自定义后端并将其与 Laravel cache 一起使用,但前提是下面的列表不适合您的用例。
我们接下来会谈到 Laravel cache 提供的所有后端的列表。
1.文件
当在中没有指定驱动程序时,文件驱动程序是 Laravel 缓存使用的默认后端。env 文件。
文件后端被设计成将缓存数据存储在**storage/framework/**下的加密文件中。当缓存新数据时,Laravel 用数据和缓存密钥创建一个加密文件。当用户试图检索内容时,也会发生同样的情况。Laravel cache 在文件夹中搜索指定的键,如果找到,就返回内容。
虽然文件后端工作完美,节省了安装和配置外部驱动程序的时间,但它也可以成为开发的完美。这比直接从数据库服务器访问数据要快。
要使用文件驱动程序,将以下代码添加到您的中。env 文件:
CACHE_DRIVER=file
2.排列
数组驱动程序是运行自动化测试的完美的缓存后端,可以通过 Github Actions、Jenkins 等工具轻松配置。
数组后端将缓存的数据存储在 PHP 中的一个数组中,不需要您安装或配置任何驱动程序。它非常适合自动化测试,并且比文件缓存后端快一点。
要使用数组驱动程序,将以下代码添加到您的中。env 文件:
CACHE_DRIVER=array
3.数据库ˌ资料库
当使用数据库驱动程序时,当前 PHP 进程的数据存储在内存中。因此,您需要创建一个数据库表来存储缓存的数据。此外,数据库缓存通过将查询工作负载从后端分配到多个前端来提高可伸缩性。
您可以运行 Artisan 命令php artisan cache:table来自动生成数据库驱动程序所需的数据库模式。
数据库驱动主要用于你可以在你的托管平台上安装任何软件的情况。
例如,假设你正在使用一个有限选项的免费托管计划。为此,我们建议坚持使用文件驱动程序,因为数据库驱动程序在大多数情况下是应用程序最薄弱的地方,试图将更多的数据推入这个瓶颈并不是一个好主意。
要使用数据库驱动程序,将以下代码添加到您的中。env 文件:
CACHE_DRIVER=database
4.雷迪斯
redis 驱动使用基于内存的缓存技术,称为 Redis 。虽然与上面讨论的其他高速缓存驱动程序相比,它很快,但它需要安装和配置外部技术。
要使用 redis 驱动程序,将以下代码添加到您的中。env 文件:
CACHE_DRIVER=redis
5.Memcached
众所周知,Memcached 是最流行的基于内存的缓存存储。如果你不介意额外的服务器维护(必须安装和维护额外的服务),基于内存的缓存驱动 Memcached 是很好的选择。
使用 memcached 驱动需要安装 Memcached PECL 包。
要使用 memcached 驱动程序,将以下代码添加到您的中。env 文件。
CACHE_DRIVER=memcached
要使用的最佳缓存驱动程序和缓存驱动程序的性能取决于您的项目用例以及要检索的数据量。
Laravel 高速缓存的使用和方法
Laravel cache 提供了许多有价值的方法,用于实现许多缓存策略。
下面我们将列出并解释不同的方法(根据它们的用例分类):
put()get()many()putMany()increment()decrement()forever()forget()flush()remember()rememberForever()
存储缓存
使用不同的方法在缓存中存储新数据非常简单,每种方法都有几个用例。
1.Cache::put()
这个方法接受三个关键参数,持续时间,以及要缓存的数据。
让我们来看看如何使用**Cache::put()**:
Cache::put(key, data, duration)
$post = Post::find(1);
Cache::put('post_1', $post, 20);
上面的代码将使用唯一的键缓存帖子 20 秒。
2.高速缓存::putMany()
此方法以相同的持续时间在缓存中一次存储一个数据数组。它接受两个参数,即数据和秒。
让我们来看看如何使用**Cache::putMany()**:
Cache::putMany(data, duration) // syntax
$posts = Post::all();
Cache::putMany($posts, 20);
3.Cache::remember()
这种方法是实现缓存备用策略的另一种很好的方式。**Cache::remember()**方法接受三个参数,一个键、秒和闭包,用于在没有找到数据时从数据库中检索数据。
让我们来看看如何使用**Cache::remember()**:
Cache::remember(key, duration, closure) // syntax
Cache::remember('posts', 20, function(){
return Post::all();
});
Laravel cache 也有**Cache::rememberForever()**方法,不接受秒参数,永久存储数据。
4.Cache::forever()
此方法将数据永久存储在缓存服务器中,而不指定任何持续时间。您可以用下面的代码实现它:
Cache::forever(key, data)
$post = Post::find(1);
Cache::forever('post_1', $post);
正在检索缓存数据
此类别中的方法从缓存中检索数据。根据数据是否被找到,这些方法中的一些会有不同的表现。
1.Cache::get()
该方法使用特定的键从缓存服务器中检索数据。您可以使用下面的代码来检索项目:
Cache::get(key) // syntax
$posts = Cache::get('posts');
2.Cache::many()
这个方法类似于**Cache::putMany()**。它用于使用缓存的键数组一次检索缓存的数据数组。您可以使用以下代码检索缓存数组:
Cache::many(keys) // syntax
const $keys = [
'posts',
'post_1',
'post_2'
];
$posts = Cache::many($keys);
3.Cache::remember()
您还可以使用此方法通过使用提供的键检查缓存服务器来检索缓存的数据。如果数据存储在缓存中,它将检索它。否则,它将从数据库服务器中检索数据并缓存。该方法与**Cache::rememberForever()**方法相同,只是在**Cache::remember()**方法中多了一个秒参数。
从缓存中删除项目
此类别下的方法用于从缓存中移除项目,按功能分组。
1.Cache::forget()
此方法使用指定的键参数从缓存中移除单个项:
Cache::forget('key');
2.Cache::flush()
该方法清除所有缓存引擎。它会删除存储在缓存中任何位置的所有项目:
Cache::flush();
递增或递减高速缓存值
您可以分别使用 increment 和 decrement 方法来调整存储在缓存中的整数值:
Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);
Laravel cache 有很多我们上面没有讨论的很棒的方法,但是上面的方法很受欢迎。你可以在官方的 Laravel 缓存文档中获得所有方法的概述。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
缓存命令解释
Laravel 提供了一些命令,使使用 Laravel 缓存变得简单快捷。以下是所有命令及其功能的列表。
清除 Laravel 缓存
该命令用于使用终端/控制台在 Laravel 缓存过期之前将其清除。例如,您可以运行以下命令:
php artisan cache:clear
清除路由缓存
这个命令用于清除 Laravel 应用程序的路由缓存。例如,运行以下命令来清除路径缓存:
php artisan config:cache
清除编译的视图文件
该命令用于清除 Laravel 应用程序的编译视图文件。您可以使用以下命令来实现它:
php artisan view:clear
数据库表
使用数据库驱动时,需要创建一个名为 cache 的数据库模式来存储缓存数据。您也可以使用 Artisan 命令生成具有正确模式的移植:
php artisan cache:table
Laravel 缓存策略
根据您的应用程序用例和数据结构,您可能会有几种不同的缓存策略。您甚至可以创建自定义策略来满足您的需求。下面我们将讨论可以在 Laravel 项目中实现的流行缓存策略列表。
信息
Kinsta 允许您为您的产品运行 Laravel,尽管我们的团队没有正式支持它。
直写
在直写策略中,缓存服务器位于请求和数据库服务器之间,使得每个写操作在到达数据库服务器之前都要经过缓存服务器。因此,直写缓存策略类似于直读策略。
您可以使用 Laravel 缓存通过以下代码实现这一策略:
public function writeThrough($key, $data, $minutes) {
$cacheData = Cache::put($key, $data, $minutes)
// Database Server is called from(after) the Cache Server.
$this->storeToDB($cachedData)
return $cacheData
}
private function storeToDB($data){
Database::create($data)
return true
}
写回(写后)
这种策略是通过增加写操作延迟来实现写通策略的更高级的方式。
您也可以称之为 writeBehind 策略,因为在将数据写入数据库服务器之前,缓存服务器会有时间延迟。
您可以使用 Laravel 缓存通过以下代码实现这一策略:
$durationToFlush = 1; // (in minute)
$tempDataToFlush = [];
public function writeBack($key, $data, $minutes){
return $this->writeThrough($key, $data, $minutes);
}
public function writeThrough($key, $data, $minutes) {
$cacheData = Cache::put($key, $data, $minutes);
$this->storeForUpdates($cacheData);
return $cacheData;
}
// Stores new data to temp Array for updating
private function storeForUpdates($data){
$tempData = {};
$tempData['duration'] = this.getMinutesInMilli();
$tempData['data'] = data;
array_push($tempDataToFlush, data);
}
// Converts minutes to millisecond
private function getMinutesInMilli(){
$currentDate = now();
$futureDate = Carbon(Carbon::now()->timestamp + $this->durationToFlush * 60000)
return $futureDate->timestamp
}
// Calls to update the Database Server.
public function updateDatabaseServer(){
if($this->tempDataToFlush){
foreach($this->tempDataToFlush as $index => $obj){
if($obj->duration timestamp){
if(Database::create($obj->data)){
array_splice($this->tempDataToFlush, $index, 1);
}
}
}
}
}
写回方法调用写通方法,该方法将数据存储到缓存服务器,并使用更新数据库服务器方法将一个临时数组稍后推送到数据库服务器。您可以设置一个 CronJob 每五分钟更新一次数据库服务器。
四处写
这种策略允许所有的写操作直接进入数据库服务器,而无需更新缓存服务器——只有在读操作期间,缓存服务器才会被更新。
假设用户想要创建一个新的文章,文章直接存储到数据库服务器。当用户第一次想要阅读文章的内容时,从数据库服务器中检索文章,并为后续请求更新缓存服务器。
您可以使用 Laravel 缓存通过以下代码实现这一策略:
厌倦了低于 1 级的 WordPress 托管支持而没有答案?试试我们世界一流的支持团队!查看我们的计划
public function writeAround($data) {
$storedData = Database::create($data);
return $storedData;
}
public function readOperation($key, $minutes){
$cacheData = Cache::remember($key, $minutes, function() {
return Article::all();
})
return $cacheData;
}
缓存搁置(延迟加载)
在这种策略中,数据库处于闲置状态,应用程序首先从缓存服务器请求数据。然后,如果有一个命中(发现),数据被返回给客户端。否则,如果有未命中(未找到),数据库服务器将请求数据并为后续请求更新缓存服务器。
您可以使用 Laravel 缓存通过以下代码实现这一策略:
public function lazyLoadingStrategy($key, $minutes, $callback) {
if (Cache::has($key)) {
$data = Cache::get($key);
return $data;
} else {
// Database Server is called outside the Cache Server.
$data = $callback();
Cache::set($key, $data, $minutes);
return $data;
}
}
上面的代码展示了缓存备用策略的实现,这相当于实现了 Cache::remember 方法。
通读
这种策略与缓存备用策略正好相反。在这种策略中,缓存服务器位于客户机请求和数据库服务器之间。
请求直接发送到缓存服务器,如果在缓存服务器中没有找到数据,缓存服务器负责从数据库服务器中检索数据。
您可以使用 Laravel 缓存通过以下代码实现这一策略:
public function readThrough($key, $minutes) {
$data = Cache::find($key, $minutes);
return $data;
}
private function find($key, $minutes){
if(Cache::has($key);){
return Cache::get($key);
}
// Database Server is called from the Cache Server.
$DBdata = Database::find($key);
Cache:put($key, $DBdata, $minutes);
return $DBdata;
}
你有它!我们现在已经讨论了下一个 Laravel 应用程序的一些流行的缓存策略。请记住,您甚至可以使用最适合您的项目需求的自定义缓存策略。
缓存 Laravel 应用程序的 UI 部分
缓存我们的 Laravel 应用程序的 UI 是一个被称为全页面缓存 FPC 的概念。该术语指的是缓存来自应用程序的 HTML 响应的过程。
它非常适合动态 HTML 数据不经常变化的应用程序。您可以缓存 HTML 响应以获得更快的总体响应和 HTML 呈现。
我们可以用下面一行代码实现 FPC:
class ArticlesController extends Controller {
public function index() {
if ( Cache::has('articles_index') ) {
return Cache::get('articles_index');
} else {
$news = News::all();
$cachedData = view('articles.index')->with('articles', $news)->render();
Cache::put('articles_index', $cachedData);
return $cachedData;
}
}
}
乍一看,您可能已经注意到我们检查了那个 articles_index 页面是否已经存在于我们的缓存服务器中。然后,我们通过用 Laravel 的视图()和渲染()方法渲染页面来返回页面。
否则,我们将呈现页面,并在将呈现的页面返回到浏览器之前,将输出存储在缓存服务器中以供后续请求使用。
构建一个 Laravel 应用程序
现在,我们将通过创建一个新的 Laravel 项目并实现 Laravel 缓存来应用我们目前所学的内容。
如果你没有用过 Laravel,你可以通读什么是 Laravel并偷看我们的优秀 Laravel 教程列表来入门。
设置 Laravel
首先,我们将使用下面的命令创建一个新的 Laravel 实例。你可以查阅更多的官方文件。
在运行下面的命令之前,打开您的控制台并导航到您存储 PHP 项目的位置。确保正确安装和配置了 Composer 。
composer create-project laravel/laravel fast-blog-app
// Change directory to current Laravel installation
cd fast-blog-app
// Start Laravel development server.
php artisan serve
配置和设定数据库种子
接下来,我们将建立我们的数据库,创建一个新的文章模型,并播种 500 个假数据点进行测试。
打开您的数据库客户端并创建一个新的数据库。我们将对名称 fast_blog_app_db 做同样的处理,然后填充我们的。带有数据库凭证的 env 文件:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=fast_blog_app_db
DB_USERNAME=//DB USERNAME HERE
DB_PASSWORD=//DB PASSWORD HERE
接下来,我们将运行以下命令来同时创建迁移和文章模型:
php artisan make:model Article -m
打开新创建的迁移发现database/migrations/xxx-create-articles-xxx.php并粘贴以下代码:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateArticlesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('description');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('articles');
}
}
接下来,运行下面的命令来创建一个新的种子:
php artisan make:seeder ArticleSeeder
打开在database/seeders/ArticleSeeder.php中新创建的种子文件,并粘贴以下代码:
<?php
namespace Database\Seeders;
use App\Models\Article;
use Illuminate\Database\Seeder;
class ArticleSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Article::factory()->count(500)->create();
}
}
打开同一目录下的DatabaseSeeder.php文件,添加以下代码:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(ArticleSeeder::class);
}
}
接下来,运行下面的命令创建一个新工厂:
php artisan make:factory ArticleFactory
打开在database/factories/ArticleFactory.php中找到的新建工厂文件,并粘贴以下代码:
<?php
namespace Database\Factories;
use App\Models\Article;
use Illuminate\Database\Eloquent\Factories\Factory;
class ArticleFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Article::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'title' => $this->faker->text(),
'description' => $this->faker->paragraph(20)
];
}
}
现在,运行下面的命令来迁移我们新创建的模式,并为测试植入我们的假数据:
php artisan migrate --seed
创建文章控制器
接下来,我们将创建控制器,并设置路由来处理我们的请求,并使用上述模型检索数据。
运行以下命令,在app/Http/Controllers文件夹中创建一个新的 ArticlesController :
php artisan make:controller ArticlesController --resource
打开文件,并将以下代码添加到类中:
// Returns all 500 articles with Caching
public function index() {
return Cache::remember('articles', 60, function () {
return Article::all();
});
}
// Returns all 500 without Caching
public function allWithoutCache() {
return Article::all();
}
之后,打开在routes/文件夹中找到的api.php文件,并粘贴以下代码来创建一个端点,我们可以调用它来检索我们的数据:
Route::get('/articles', '[[email protected]](/cdn-cgi/l/email-protection)');
Route::get('/articles/withoutcache', '[[email protected]](/cdn-cgi/l/email-protection)');
测试性能
最后,我们将测试我们的应用程序响应的性能,无论是否实现了 Laravel 缓存。
此屏幕截图显示了实现了缓存的 API 的响应时间:
Laravel API response time with cache.
下面的屏幕截图显示了未实现缓存的 API 的响应时间—注意,缓存实例的响应时间增加了超过 5,000% :
Laravel API response time without cache.
对 web 开发和 laravel 有扎实的掌握,但是想了解更多关于 laravel 缓存的知识,以及如何实现?✅:这封信是给你的👇
摘要
我们通过构建一个新的项目,对其响应进行基准测试,并比较结果,探索了实现和操作 Laravel 缓存的各种策略。
您还了解了如何使用不同的 Laravel 缓存驱动程序和方法。此外,我们实施了不同的缓存策略来帮助您确定哪种策略可能适合您。
要了解更多 laravel,请浏览我们精心挑选的最佳 Laravel 教程。无论您是初学者还是高级 Laravel 开发人员,这里都有适合每个人的东西!
如果你还有关于 Laravel 缓存的问题,请在评论区告诉我们。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
建立一个 Laravel 实时评论系统
为了在你的在线社区或博客中建立信任,你需要一个设计良好的 Laravel live 评论系统。
然而,第一次尝试就做对并不容易,除非你依赖自托管评论系统,如 Disqus 或 Commento,它们都有自己的缺点。他们拥有你的数据,提供有限的设计和定制,最重要的是,他们不是免费的。
有了这些限制,如果建立你的实时评论系统的想法——有控制你的数据、设计和定制适合你的博客的外观和感觉的好处——吸引你,继续读下去。
这篇文章将教你如何开发一个具有不同评论功能的设计良好的实时评论系统。遵循用 Vue.js 和 Socket.io 构建实时聊天应用的原则,我们将使用 Laravel、Pusher 和 React 来开发实时评论系统。
让我们开始吧!
我们将建造什么
我们将建立一个实时评论系统,它可以集成到任何网站或博客中,在社区中建立信任。
构建模块概述:Laravel、Pusher 和 Vue
在我们深入开发之前,让我们讨论一下我们将用来开发实时评论系统的技术。
拉勒韦尔
Laravel 是一个开源的面向 MVC 的 PHP 框架。它用于构建简单到复杂的 PHP web 应用程序,以其优雅的语法而闻名。了解什么是 Laravel对建立这个评论系统至关重要。
推进器
Pusher 使开发者能够大规模创建实时功能。本文将结合 Laravel Echo 创建一个对 Pusher 服务器的实时广播事件,并用 Vue.js 在前端显示内容
view . js-检视. js
Vue.js 是我们首选的前端框架。Vue.js 是一个进步的 JavaScript 前端框架,以其简单易学和直接的前端开发方法而闻名。我们将使用 Vue.js 来开发我们的实时评论系统。
建立评论系统
如果我们上面概述的评论系统听起来像你想要的,让我们继续构建它。
1.安装和设置 Laravel、Pusher 和 Echo
Laravel、Echo 和 Pusher 的安装和设置非常简单,因为 Laravel 已经通过设置和配置 Laravel Echo 与 Pusher 完美配合完成了所有后台任务。
首先,我们将开始安装和配置 Laravel,我们的后端 PHP 框架。如果您已经全局安装了 Laravel CLI ,那么您可以使用这个命令获取 Laravel 的一个新实例:
laravel new commenter
您的新 Laravel 实例将安装在一个名为 commenter 的文件夹中。让我们打开虚拟代码中的文件夹,并在终端中导航至该文件夹:
cd commenter
code .
在我们启动开发服务器之前,让我们安装并配置一些将用于项目的必要包。
运行这个命令来安装 Pusher PHP SDK:
composer require pusher/pusher-php-server
运行此命令为 Vue.js 前端安装必要的 NPM 软件包:
npm install --save laravel-echo pusher-js
接下来,我们将配置 Laravel Echo 和 Pusher。打开您的resources/js/bootstrap . js文件,并粘贴以下脚本:
window._ = require("lodash");
window.axios = require("axios");
window.moment = require("moment");
window.axios.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
window.axios.defaults.headers.post["Content-Type"] =
"application/x-www-form-urlencoded";
window.axios.defaults.headers.common.crossDomain = true;
window.axios.defaults.baseURL = "/api";
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common["X-CSRF-TOKEN"] = token.content;
} else {
console.error("CSRF token not found");
}
/**
* Echo exposes an expressive API for subscribing to channels and listening
* for events that Laravel broadcasts. Echo and event broadcasting
* allows your team to build robust real-time web applications quickly.
*/
import Echo from "laravel-echo";
window.Pusher = require("pusher-js");
window.Echo = new Echo({
broadcaster: "pusher",
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
forceTLS: true
});
您会从上面的脚本中注意到,我们只是用默认配置来配置 Axios 实例。接下来,我们将配置 Laravel Echo 来使用 Pusher 及其配置。
2.数据库设置和迁移
接下来,我们将创建并设置我们的数据库来存储持久化的注释。我们将使用 SQLite,尽管您可以使用自己选择的任何数据库客户机。
在数据库文件夹中创建一个 database.sqlite 文件,并更新您的。env 文件如下:
DB_CONNECTION=sqlite
DB_DATABASE=/Users/all/paths/to/project/commenter_be/database/database.sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=
接下来,运行此命令创建注释迁移,并使用以下脚本对其进行更新:
php artisan make:migration create_comments_table
打开数据库/migrations/xxxx _ create _ comments _ table _ xxxx . PHP文件并粘贴以下代码:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateCommentsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('comments', function (Blueprint $table) {
$table->id();
$table->string('content');
$table->string('author');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('comments');
}
}
这将创建一个新的评论数据库表,并添加内容和作者列。
最后,要创建迁移,请运行以下命令:
php artisan migrate
3.创建模型
在 Laravel 中,模型很重要——它们是与我们的数据库通信和处理数据管理的最可靠的方式。
为了在 Laravel 中创建一个模型,我们将运行以下命令:
php artisan make:model Comment
接下来,打开 app/models/Comment.php 文件并粘贴以下代码:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
use HasFactory;
protected $fillable = ['content', 'author'];
} The $fillable array allows us to create and update the model in mass.
4.创建控制器
控制器至关重要,因为它们容纳了我们应用程序的所有逻辑、业务和其他内容,所以让我们创建一个控制器来处理注释逻辑:
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
php artisan make:controller CommentController
接下来,打开app/Http/Controllers/comment controller . PHP文件并粘贴以下代码:
<?php
namespace App\Http\Controllers;
use App\Models\Comment;
use App\Events\CommentEvent;
use Illuminate\Http\Request;
class CommentController extends Controller
{
//
public function index()
{
return view('comments');
}
public function fetchComments()
{
$comments = Comment::all();
return response()->json($comments);
}
public function store(Request $request)
{
$comment = Comment::create($request->all());
event(new CommentEvent($comment));
return $comment;
}
}
控制器有三种不同的方法:分别返回一个注释视图、获取所有注释和存储一个新注释。最重要的是,我们每次存储新评论时都会触发一个事件,前端会监听这个事件,使用 Pusher 和 Laravel Echo 用新评论实时更新相关页面。
5.创建路线
为了正确配置我们的路线,我们需要更新大量的文件,所以让我们开始吧。
首先,我们将更新 routes 文件夹中的api.php文件。打开文件并添加以下代码:
use App\Http\Controllers\CommentController;
//...
Route::get('/', [CommentController::class, 'index']);
Route::get('/comments', [CommentController::class, 'fetchComments']);
Route::post('/comments', [CommentController::class, 'store']);
接下来,打开同一个文件夹中的channels.php文件,并添加以下代码来授权我们之前触发的事件:
Broadcast::channel('comment', function ($user) {
return true;
});
接下来,打开同一个文件夹中的web.php文件,并添加下面的代码,将我们的请求重定向到主页,Vue.js 将在那里获取它:
use App\Http\Controllers\CommentController;
//...
Route::get('/', [CommentController::class, 'index']);
最后,我们将在资源/视图文件夹中创建一个名为【comments.blade.php】T2 的新刀片文件,并添加以下代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Commenter</title>
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<style>
.container {
margin: 0 auto;
position: relative;
width: unset;
}
#app {
width: 60%;
margin: 4rem auto;
}
.question-wrapper {
text-align: center;
}
</style>
</head>
<body>
<div id="app">
<div class="container">
<div class="question-wrapper">
<h5 class="is-size-2" style="color: #220052;">
What do you think about <span style="color: #47b784;">Dogs</span>?</h5>
<br>
<a href="#Form" class="button is-medium has-shadow has-text-white" style="background-color: #47b784">Comment</a>
</div>
<br><br>
<comments></comments>
<new-comment></new-comment>
</div>
</div>
<script async src="{{mix('js/app.js')}}"></script>
</body>
</html>
该脚本添加了一个文章标题和一个 Vue 组件,以显示上面创建的文章标题并向其添加新的评论。
运行以下命令来测试是否一切都正确:
需要一个给你带来竞争优势的托管解决方案吗?Kinsta 为您提供了令人难以置信的速度、一流的安全性和自动伸缩功能。查看我们的计划
npm run watch
php artisan serve
如果您看到了这个页面,那么您已经准备好进入本文的下一步了。

Live commenting system in Laravel
6.设置 Vue(前端)
我们将创建并设置我们的 Vue 实例,以创建并显示在这篇帖子上发表的所有评论。
我们将从建立我们的 Vuex 商店开始。在 resource/js/store 文件夹中创建以下文件。
创建评论状态
创建 actions.js 并添加以下代码:
let actions = {
ADD_COMMENT({ commit }, comment) {
return new Promise((resolve, reject) => {
axios
.post(`/comments`, comment)
.then(response => {
resolve(response);
})
.catch(err => {
reject(err);
});
});
},
GET_COMMENTS({ commit }) {
axios
.get("/comments")
.then(res => {
{
commit("GET_COMMENTS", res.data);
}
})
.catch(err => {
console.log(err);
});
}
};
export default actions;
动作文件调用后端的注释端点。
接下来,创建 getters.js 文件并添加以下代码:
let getters = {
comments: state => {
return state.comments;
}
};
export default getters;
Getter 文件用于检索状态中的所有注释。
创建 mutations.js 文件,并将其粘贴到以下代码中:
let mutations = {
GET_COMMENTS(state, comments) {
state.comments = comments;
},
ADD_COMMENT(state, comment) {
state.comments = [...state.comments, comment];
}
};
export default mutations;
接下来,创建 state.js 文件并将其粘贴到以下代码中:
let state = {
comments: []
};
export default state;
最后,我们将把所有内容添加到导出到 Vue 实例的 index.js 文件中,创建一个 index.js 文件并添加以下内容:
import Vue from "vue";
import Vuex from "vuex";
import actions from "./actions";
import mutations from "./mutations";
import getters from "./getters";
import state from "./state";
Vue.use(Vuex);
export default new Vuex.Store({
state,
mutations,
getters,
actions
});
创建组件
最后,我们将创建注释组件来显示和添加新的注释。让我们从创建单个注释组件开始。
在 resource/js 文件夹中创建一个名为 components 的文件夹,添加 comment.vue 并添加以下代码:
<template>
<li class="comment-wrapper animate slideInLeft">
<div class="profile">
</div>
<div class="msg has-shadow">
<div class="msg-body">
<p class="name">
{{ comment.author }} <span class="date">{{ posted_at }}</span>
</p>
<p class="content">{{ comment.content }}</p>
</div>
</div>
</li>
</template>
<script>
export default {
name: "Comment",
props: ["comment"],
computed: {
posted_at() {
return moment(this.comment.created_at).format("MMMM Do YYYY");
},
},
};
</script>
<style lang="scss" scoped>
.comment-wrapper {
list-style: none;
text-align: left;
overflow: hidden;
margin-bottom: 2em;
padding: 0.4em;
.profile {
width: 80px;
float: left;
}
.msg-body {
padding: 0.8em;
color: #666;
line-height: 1.5;
}
.msg {
width: 86%;
float: left;
background-color: #fff;
border-radius: 0 5px 5px 5px;
position: relative;
&::after {
content: " ";
position: absolute;
left: -13px;
top: 0;
border: 14px solid transparent;
border-top-color: #fff;
}
}
.date {
float: right;
}
.name {
margin: 0;
color: #999;
font-weight: 700;
font-size: 0.8em;
}
p:last-child {
margin-top: 0.6em;
margin-bottom: 0;
}
}
</style>
接下来,在同一个文件夹中创建以下名为 comments.vue 的文件,并添加以下代码:
<template>
<div class="container">
<ul class="comment-list">
<Comment
:key="comment.id"
v-for="comment in comments"
:comment="comment"
></Comment>
</ul>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import Comment from "./Comment";
export default {
name: "Comments",
components: { Comment },
mounted() {
this.$store.dispatch("GET_COMMENTS");
this.listen();
},
methods: {
listen() {
Echo.channel("comment").listen("comment", (e) => {
console.log(e);
this.$store.commit("ADD_COMMENT", e);
});
},
},
computed: {
...mapGetters(["comments"]),
},
};
</script>
<style scoped>
.comment-list {
padding: 1em 0;
margin-bottom: 15px;
}
</style>
最后,创建一个名为 NewComment.vue 的文件,并添加以下代码:
<template>
<div id="commentForm" class="box has-shadow has-background-white">
<form @keyup.enter="postComment">
<div class="field has-margin-top">
<div class="field has-margin-top">
<label class="label">Your name</label>
<div class="control">
<input
type="text"
placeholder="Your name"
class="input is-medium"
v-model="comment.author"
/>
</div>
</div>
<div class="field has-margin-top">
<label class="label">Your comment</label>
<div class="control">
<textarea
style="height: 100px"
name="comment"
class="input is-medium"
autocomplete="true"
v-model="comment.content"
placeholder="lorem ipsum"
></textarea>
</div>
</div>
<div class="control has-margin-top">
<button
style="background-color: #47b784"
:class="{ 'is-loading': submit }"
class="button has-shadow is-medium has-text-white"
:disabled="!isValid"
@click.prevent="postComment"
type="submit"
>
Submit
</button>
</div>
</div>
</form>
<br />
</div>
</template>
<script>
export default {
name: "NewComment",
data() {
return {
submit: false,
comment: {
content: "",
author: "",
},
};
},
methods: {
postComment() {
this.submit = true;
this.$store
.dispatch("ADD_COMMENT", this.comment)
.then((response) => {
this.submit = false;
if (response.data) console.log("success");
})
.catch((err) => {
console.log(err);
this.submit = false;
});
},
},
computed: {
isValid() {
return this.comment.content !== "" && this.comment.author !== "";
},
},
};
</script>
<style scoped>
.has-margin-top {
margin-top: 15px;
}
</style>
现在,打开 app.js 文件,添加以下代码来注册您之前创建的 Vue 组件:
// resource/js/app.js
require("./bootstrap");
window.Vue = require("vue");
import store from "./store/index";
Vue.component("comment", require("./components/Comment"));
Vue.component("comments", require("./components/Comments"));
Vue.component("new-comment", require("./components/NewComment"));
const app = new Vue({
el: "#app",
store
});
摘要
就是这样!您刚刚学习了如何使用 Laravel 为您的站点构建一个实时评论系统。
我们已经讨论了在你的社区或博客中建立信任的过程中创建和管理评论系统的好处。我们还探索了如何利用不同的评论功能从头开始开发一个设计良好的实时评论系统。
你可以在这个 Github repo 里克隆这个项目的源代码。
你对我们一起建立的 Laravel 实时评论系统有什么看法?请在评论中告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
Laravel 开发者的平均工资是多少?2022 年的新数据
不管你可能听说了什么,PHP 并没有死亡,它比以往任何时候都更受欢迎。无论你是一个经验丰富的 PHP 开发人员,还是刚进入这个领域,在开始找工作之前准备好当前的工资数据是明智的。
PHP 开发人员的平均年薪是 81,000 美元。虽然不是编程行业的最高工资,但对于一个多面手 PHP 程序员来说,这当然是不错的。
但是当你决定专注于像 Laravel 这样的 PHP 框架时会发生什么呢?Laravel 开发人员的平均工资与类似开发人员的工资相比如何?如果你决定缩小差距,成为一名 Laravel 专业人士,你的工作要求会有什么变化?
这就是我们将在本文中讨论的内容。我们还将讨论从事 Laravel 开发是否值得。
拉勒维尔:这是什么?
在我们进入实质细节之前,让我们澄清一下【Laravel 是什么以及它的用途。
Laravel 是 PHP 的一个 web 应用框架(类似于 Ruby on Rails 或 ASP.NET)。这是一个免费的开源框架,包括各种资源,如库和 API,使得使用 PHP 更加容易。框架也加速了开发过程,使得构建和部署站点和应用程序更快。
Laravel 用于开发使用 MVC(模型-视图-控制器)模式的网站和应用程序。它使 PHP 代码变得可读和简单,也方便了常见的开发任务。
此外,大量的 Laravel 工具,比如 Laravel Forge ,可以帮助你在流行的服务器上部署你的项目。
典型的 Laravel 项目包括科学、技术和电子商务网站;售票和订购系统;和管理仪表板,用于更复杂的实时应用程序。也就是说,Laravel 可以用于任何规模的项目。
Laravel 相对来说比较好学。你会在官方网站上找到大量文档,以及大量在线 Laravel 教程和资源来帮助你踏上学习之旅。
Laravel 开发人员要求和责任
作为一名 Laravel 开发人员,您需要掌握几项技能。精通 PHP 是必须的,但你也需要知道如何使用和管理数据库和 SQL 。
服务器工具和技术的知识会派上用场,前端开发的 T2 技能也会派上用场。更具体地说,你需要知道其他编程语言的基础,尤其是 HTML ,CSS 和 JavaScript。
虽然拥有计算机科学相关领域的学士学位或更好的学位是很好的,但这并不是必要的,因为即使你是自学的或只参加过编码训练营,你也可以成为一名成功的 Laravel 开发人员。
作为一名 Laravel 开发人员,你的主要职责是开发和维护 web 应用程序,根据需要编写安全的模块化代码,开发必要的 PHP 模块。
你还将和其他人一起工作——无论是在开发团队还是在公司的其他团队,比如营销或运营团队。您在这里的主要职责是确保 web 应用程序拥有所有必要的功能。您还将处理调试和优化代码的任务。
其他职责可能包括测试和优化用户界面、设计数据库、记录整个流程和开发计划,以及检查代码在整个应用程序中的有效性和一致性。
Laravel 有需求吗?
到目前为止,我们已经介绍了什么是 Laravel,以及如果您决定成为 Laravel 开发人员,您的责任是什么。但是 Laravel 受欢迎吗?
根据 BuiltWith 汇编的 Laraval 使用统计数据,Laravel 的受欢迎程度一直在稳步增长,有超过 70 万个现场网站在使用它。
根据 Stack Overflow 从 2021 年开始的开发者调查,Laravel 框架被 10%的开发者使用。Laravel 还被 SitePoint 评为 2015 年 T2 最受欢迎的框架。虽然它在堆栈溢出趋势上不是排名第一的框架,但它仍然有相当多的追随者,这表明作为 Laravel 开发人员的职业生涯是可行的。
Laravel 开发人员的平均工资
既然我们已经介绍了作为一名 Laravel 开发人员的基本细节,是时候看看这些数字了,看看它们描绘了什么样的画面。
根据 Glassdoor 的数据,Laravel 开发人员的平均年薪为 90487 美元。这是基于向 Glassdoor 报告的 8640 份工资,最低工资为 6.5 万美元,最高为 12.6 万美元。

Average Laravel salary according to ZipRecruiter.
ZipRecruiter 报告的数字略高,为每年 92,285 美元,最低 4 万美元,最高 15 万美元。
另一方面,Payscale 报告的数字略低,为每年 7.8 万美元,而Salary.com 同样列出了平均年薪 7.9 万美元,最低 6.5 万美元,最高 9.5 万美元。
当你把上面的数字平均一下,最终的数字是每年 85,000 美元。虽然不像其他类似的工作那样收入很高,但这仍然是一份不错的薪水。
先不说这个,让我们看看 Laravel 开发人员的工资与类似职业相比如何,以及经验和位置在你能赚多少钱方面如何发挥作用。
经验工资
不管你决定从事什么样的职业,有一点是肯定的:你的经验越多,你挣的就越多。作为一名 Laravel 开发人员也不例外。
根据 Glassdoor 的数据,作为一名初级 Laravel 开发人员,你可以期望平均每年赚 56K 美元。
在你的职业生涯中,你可以期待 3 万美元的增长——在 ZipRecruiter 上列出的高级 Laravel 开发人员的平均工资为 8.6 万美元/年。
按国家列出的 Laravel 开发人员工资
上面列出的数字都是美国的数据。那么,当谈到 Laravel 开发人员的工资时,其他国家的情况如何呢?
下面,我们列出了几个不同国家的数据,让你对薪酬差异有所了解。请注意,为了便于比较,工资已转换为美元。
- Bangladesh :每年 4K 美元或৳360K BDT
- 加拿大:5.3 万美元/年或 6.8 万加元/年
- 4K 美元/年或埃及镑 61K/年
- 德国:5.3 万美元/年或 4.5 万欧元/年
- ₹403K/year 每年 5000 美元
- 4K 美元/年或 6000 万印尼盾/年
- 意大利:3.1 万美元/年或 2.6 万欧元/年
- 马拉西亚:10K 美元/年或 42000 令吉/年
- 荷兰:4.9 万美元/年或 4.2 万欧元/年
- 新西兰:56K 美元/年或 79K 新西兰元/年
- 4K 美元/年或 72 万卢比/年
- ₱313K/year 每年 6000 美元
- 葡萄牙:18K 美元/年或 15K 欧元/年
- 俄国:960k₽/year 每年 1.3 万美元
- 新加坡:3.3 万美元/年或 4.5 万新元/年
- 南非:2.3 万美元/年或 34.6 万兰特/年
- 西班牙:2.8 万美元/年或 2.4 万欧元/年
- 斯里兰卡:5000 美元/年或 100 万 LKR/年
- 英国:4.1 万美元/年或者 3 万美元/年
基于这些数字,我们可以看到加拿大、新西兰和大部分西欧国家提供与美国相当的薪水。与此同时,西班牙和葡萄牙沿线的亚洲和非洲国家列出了最低的 Laravel 开发人员工资。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
换句话说,如果你生活在一个更发达的国家,你会挣得更多。通过这些数字,很容易看出你的位置会显著影响你的薪水。
Laravel vs Symfony、Django 和 Node.js
说到 web 应用程序框架,并不缺少选择。现在最流行的框架是 Symfony、 Django 和 Node.js ,分别是 PHP、Python 和 JavaScript 框架。
这是他们的工资总额。
就 Symfony 而言, Glassdoor 报道平均年薪为 8.1 万美元,最低为 4.7 万美元,最高为 13.8 万美元。 ZipRecruiter 列出了略高的数字,Symfony 开发人员的平均年薪为 9.7 万美元。

Average Symfony developer salary according to ZipRecruiter.
作为一名 Django 开发人员工作会导致数字稍微高一点。
更具体地说, Glassdoor 列出了Django 开发人员的平均年薪为 9 万美元,最低为 61 美元,最高为 13.1 万美元。 ZipRecruiter 的数据为每年 1.8 万美元,而 Payscale 的数据是三家公司中最低的,每年 8.9 万美元。

Average Python Django developer salary according to ZipRecruiter.
最后,我们来看看一个 Node.js 开发者的平均工资。
据 Glassdoor 报道,平均年薪为 88K 美元,最低 64K 美元,最高 126K 美元。 ZipRecruiter 说node . js 开发人员的平均工资是 11.4 万美元/年,而 Payscale 列出的是10.5 万美元/年。

Average Node.js developer salary on ZipRecruiter.
如果我们处理所有这些数字,我们会得到以下信息:
- Symfony 开发人员平均工资:8.9 万美元/年
- Django 开发人员的平均工资:9.9 万美元/年
- Node.js 开发人员的平均工资:10.2 万美元/年
从这些数字中,很容易看出 Laravel 开发人员的平均工资较低。然而,差别并不太大,尤其是与其他 PHP 框架相比。
需要一流的,快速的,安全的主机为您的新电子商务网站?Kinsta 提供超快的服务器和来自 WooCommerce 专家的 24/7 世界级支持。查看我们的计划
同样值得注意的是,Node.js 既可以用作前端框架,也可以用作后端框架,所以平均工资最高也就不足为奇了。
Laravel 开发者工资 vs PHP 开发者工资
作为一名 Laravel 开发人员,您将拥有更专业的技能和知识。说到你的薪水,和一个 PHP 开发人员的平均薪水相比会有多大的不同?
数字是这样说的。

Average PHP developer salary on Glassdoor.
如果你是一名 PHP 开发人员, Glassdoor 报道平均年薪为 8.1 万美元,最低 5.5 万美元,最高 10 万美元。 ZipRecruiter 列出的 it 费用为 86K 美元/年,最低 16K 美元,最高 137K 美元。
Payscale 报道一个 PHP 开发人员的平均工资为 64K 美元/年,最低 43K 美元,最高 94K 美元。最后,确实列出了平均年薪 94,000 美元。
上面的数字给出了平均 81,000 美元/年,只比一个 Laravel 开发人员的平均工资少$4K。
Laravel 开发人员工资与后端和全栈开发人员工资
Laravel 开发人员比非专业 PHP 开发人员略胜一筹……但是当你把他们的薪水与后端或全栈开发人员的要求更高的职业相比时,会发生什么呢?
就全栈开发人员的平均工资而言,最终平均工资充分说明了这个职位的要求有多高:
- 实际上:10.8 万美元/年,基于 1.05 万的报告工资
- glass door:99K 美元/年,最低 63K 美元,最高 157K 美元
- zip recruiter:10.3 万美元/年(49 美元/小时),最低 3.8 万美元,最高 15.9 万美元
- 工资级别:79K 美元/年,最低 54K 美元,最高 115K 美元
至于后端开发人员的工资,以下是主要网站列出的工资:
- 玻璃门:8.1 万美元/年
- zip recruiter:10 万美元/年
- 薪酬等级:8.1 万美元/年
从上面的这些数字来看,全栈开发人员的平均工资为 97,000 美元/年,而后端开发人员的工资为 87,000 美元/年。
换句话说,作为一名后端开发人员,你将获得与 Laravel 开发人员相当的薪水。拥有全栈开发人员的前端开发技能和后端开发技能将会让你每年多赚$10K。
如果你正在考虑做一名 Laravel 开发人员,提高你的前端开发技能以及你在 Laravel 开发方面的技能可能是一个获得加薪和增加你日常工作需求多样性的好方法。
Laravel 开发值得吗?
如前所述,Laravel 框架越来越受欢迎。这是一个相当容易学习的框架,比你作为一个非专业的 PHP 开发人员赚的要多一点。
然而,请记住,一些更受欢迎的工作,如 Django 开发人员或全栈开发人员,会带来更好的工资。
与其他类似的工作相比,作为一名 Laravel 开发人员,你的收入会比专注于一个不同的框架要少一些。然而,差别并不太大。
值得一提的是,如果金钱是主要考虑因素,你可以不断扩展你的技能组合,并在职业生涯的后期添加另一个框架。与任何其他工作一样,随着职业的发展,以及获得更多经验和对 Laravel 框架的实际使用,你会赚得更多。
这种特殊的 PHP 框架越来越受欢迎,并被评为最受欢迎和喜爱的 PHP 框架之一,因此工作保障看起来相当不错。
摘要
Laravel 开发人员无疑是一个不错的选择。根据我们上面看到的数字,平均工资略高于 PHP 开发人员,这证明了专攻某项特定技术可以带来工资增长。
要成为一名 Laravel 开发人员,您需要拓宽自己的技能。你的工作职责会比你是一名普通的 PHP 开发人员要求稍微高一点,但不会像一名全栈开发人员或一名 DevOps 工程师那样要求高。
考虑到这一点,如果您希望有机会与其他人合作,并在运行整个行业的令人兴奋的项目上工作,那么成为 Laravel 开发人员是一个体面而可行的职业选择。
你对 Laravel 开发人员的工资水平有什么看法?请在评论区告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
想成为 Laravel 开发者?这是你需要知道的一切
自 2011 年以来,Laravel 在全球范围内越来越受欢迎。今天,超过130 万个网站使用 Laravel 框架,包括美国托管的 284,000 多个网站。
Laravel 是一个优秀的 web 应用程序框架,因为它可以帮助开发人员快速轻松地构建项目。因此,很自然地,对 Laravel 开发人员的需求预计在未来几年只会增长。
在本指南中,您将了解成为 Laravel 开发专家所需的一切。这包括什么是 Laravel 开发,它是如何工作的,以及作为开发人员工作时需要的技能。
我们还将介绍在雇佣 Laravel 开发人员将这一技能引入内部时需要注意的事项。
查看我们的视频指南成为一名 Laravel 开发者
T3】
什么是 Laravel?
在您将 Laravel 发展作为职业进行探索之前,您需要了解 Laravel 的基础知识。
Laravel 是一个用于创建网站和网络应用的开发框架。Laravel 的创造者泰勒·奥特威尔在 2011 年 6 月 9 日发布了它的测试版。此后,Laravel 出现了八个主要版本,包括:
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
- Laravel 2 =年 9 月发布
- Laravel 3 =年发布
- Laravel 4 =年 5 月发布(人们也称 Laravel 4 为“照亮”)
- Laravel 5 =年 2 月发布
- Laravel 6 =年 9 月发布
- Laravel 7 =年 3 月发布
- Laravel 8 =年 9 月发布
你还应该注意到 Laravel 9 计划于 2022 年 1 月发布。
要成为一名优秀的 Laravel 开发人员,您不需要理解不同 Laravel 版本之间的差异。然而,你需要了解 Laravel 8 的特性,我们将在' Laravel 特性'一节中介绍。

拉勒维尔框架。
今天,Laravel 被托管在 GitHub(T1)上,那里有 T2 65,900 名观星者,已经被下载了 1 . 44 亿次。麻省理工学院许可它。
您是否知道超过 130 万个网站使用 Laravel 框架,其中包括 284,000+个托管在美国的网站?🚀根据这个指南,看看你是否适合从事职业发展⬇️ 点击推特
Laravel 是如何工作的?
Laravel 是一个开源的 PHP(超文本预处理器)框架,开发者用来构建网站。PHP 框架为开发者提供了一个预编程模块库,他们可以用它来快速创建 web 应用程序。
尽管许多人指责 PHP 已经“死亡”,但全世界的开发人员仍在使用它。统计显示,在所有已知服务器端编程语言的网站中,几乎有 78.9%使用 PHP。
你需要知道两个基本事实来理解 Laravel 是如何工作的。
首先,需要注意的是,Laravel 使用的是 PHP,一种脚本语言,而不是一种通用编程语言(通常只称为“编程语言”)。
虽然脚本语言和编程语言相似,但是脚本语言是特定于平台的,并且在运行时编译,而编程语言不是特定于平台的,并且在编译期间编译。
虽然每个开发人员都有独特的工作习惯,但许多人发现像 Laravel 这样的框架使用起来更快。
第二,你需要知道 Laravel 使用的是 MVC(模型视图控制器)架构。MVC 是一种使用三个组件的架构模式。
其中包括:
- 模型:定义项目中数据和规则的核心组件
- 视图:模型定义的数据和逻辑的表达
- 控制器:控制功能,将它们转换成可用格式,并将数据传递给视图和模型组件的部件。
您可以在下图中看到模型、视图和控制器之间的交互。

一张 MVC 图。(来源: 百科 )
拉勒维尔特征
接下来,我们需要覆盖 Laravel 的特性。
Laravel 最受欢迎的功能包括:
- 完整的身份验证系统:帮助开发人员安全工作
- 对象关系映射(ORM):帮助开发人员更有效地使用表格
- 模块库:开发者不用写代码就可以用它来构建应用
- 带有预构建命令的命令行界面(CLI):开发人员使用它来构建、修复和测试他们的应用程序
- 自动测试:帮助开发人员加速测试过程
- 虚拟开发环境:为开发人员提供一个家园和他们构建应用程序所需的所有工具
为什么要和 Laravel 一起发展?
2022 年,有大量流行的 PHP 框架可用。那么是什么让人们选择 Laravel 呢?Laravel 为企业和开发者提供了许多好处,我们在下面列出了其中最好的。
开发者利益
- Laravel 反应灵敏,使用简单。
- Laravel 为开发人员提供了一个内置工具库,减少了他们需要做的编码量。
- Laravel 很好学。
- Laravel 允许开发人员专注于他们的 web 应用程序的设计、架构和功能。
- Laravel 具有内置的测试和安全功能。
公司福利
- Laravel 应用程序从设计到发布都很快。
- Laravel 集成了邮件服务。
- Laravel 与 Redis 和 Memcached 等缓存后端工具集成。
- Laravel 具有内置的安全功能,可以保护 Laravel 网站免受 SQL 注入、跨站点脚本和伪造的攻击。
自然,学习使用 Laravel 对你的职业生涯来说是一项了不起的投资。
什么是 Laravel 开发者?
Laravel 开发人员专门使用 Laravel 框架开发项目。如果你对此感兴趣,请继续阅读。本节将概述成为一名 Laravel 程序员所需的一切。
但是首先,让我们从每个新开发人员都会问的一个问题开始。
一个 Laravel 开发者在工作中做什么?
一个 Laravel 开发者是做什么的?
Laravel 开发人员花费他们的工作日来构建新的 web 应用程序,并使用 Laravel 来维护它们。
Laravel 开发人员既可以单独工作,也可以在团队环境中工作。
当你独自工作时,你会花时间修复错误,一点一点地构建你的应用程序,实施安全措施,进行测试,以及编写代码。
当你在一个团队中工作时,你会花时间设计你的应用程序的架构,咨询用户,评估彼此的工作。
当然,Laravel 开发人员的职责是非常多样的。
一个 Laravel 开发者的职责是什么?
作为一名 Laravel 开发人员,您将执行各种需要不同技能的工作职能。这些责任包括:
使用 Laravel 构建新的 Web 应用程序
Laravel 开发人员使用该框架为他们的公司或客户构建新的 web 应用程序。作为一名 Laravel 程序员,您将构建各种应用程序,包括静态、单页(SPA)、多页(MPA)、动态和门户 web 应用程序。
用 Laravel 维护当前的 Web 应用程序
Laravel 开发人员不仅仅是创建新的应用程序;他们也维护旧的。由于 web 应用程序需要频繁的维护,Laravel 开发人员花费他们的工作日来创建安全更新,修复 bug,并更新应用程序的功能以更好地满足用户的需求。
调试和修复代码问题
Laravel 开发人员经常修复用户、其他开发人员和管理人员记录的问题。作为一名 Laravel 开发人员,您的雇主会希望您找到这些问题,诊断潜在的问题,并创建一个解决问题的方案。
执行 UI 测试
Laravel 开发人员在启动新应用程序或重新设计旧应用程序时会进行用户界面测试。虽然许多开发人员使用 UI 测试工具,如 Parasoft Selenic、Katalon、Mabl 和 TestCraft 来测试他们的应用程序,但您也需要执行手动测试作为您职责的一部分。
制作文档
Laravel 开发人员创建文档来帮助用户安装、使用和导航他们的应用程序。他们还制作软件开发文档来帮助其他开发人员使用他们的应用程序。
规划每个 Web 应用程序的架构
Laravel 开发人员在开发过程之前和期间规划出他们应用的架构。
编写代码
虽然开发人员使用 Laravel 预先设计的模块来构建 web 应用程序,但是他们还需要用代码来补充这些模块。自然,作为一名开发人员,你会花一些时间编写、测试和执行代码。
设计数据库
Laravel 开发人员需要设计、构建和维护他们应用程序的数据库。虽然您不需要成为数据库专家,但您偶尔会作为 Laravel 开发人员使用 SQL。
Laravel 开发者赚多少?
由于 Laravel 开发人员在工作中需要身兼数职,成为 Laravel 开发人员可能会非常有利可图。根据 Salary.com 的数据,美国 Laravel 开发者的平均年收入为 78,584 美元(2021 年 6 月 28 日)。
由于这个数字只是一个平均值,雇主可能会给你不同的薪水。当面试 Laravel 的工作时,请记住全职 Laravel 开发人员的典型工资范围是 71,230 美元到 87,189 美元。
工资的偏离是由几个因素造成的。这些因素包括开发人员的教育程度、经验年限、雇主的规模(和盈利能力)、是否获得奖金、管理责任、加班和地点。
如果你想知道美国 Laravel 工资的全部范围,你可以在钟形曲线图上看到。

拉勒维尔开发商的薪水。(来源:【salary.com】)
成为一名 Laravel 开发者需要哪些技能?
虽然每个 Laravel 工作的需求是不同的,但是每个 Laravel 开发人员都需要掌握一些基本技能。其中包括:
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
Web 开发技能
Laravel 开发人员需要具备创建 web 应用程序的知识和经验。虽然您可能只使用 Laravel 编写代码,但您也需要理解和使用:
- CSS(层叠样式表):Laravel 开发人员使用 CSS 来控制他们的 web 应用程序中 HTML 元素的显示——你需要 CSS 来获得好的设计。
- Javascript: Laravel 开发人员使用 Javascript 来控制他们的 web 应用程序在用户与之交互时如何响应——你需要 Javascript 来创建良好的用户体验。
- HTML(超文本标记语言):Laravel 开发者使用 HTML 来区分他们网站的不同部分(如标题、正文、副标题等)。)—你需要 HTML 来建立一个网站。
数据库管理技能
Laravel 开发人员需要知道如何构建和管理数据库。您还需要了解如何使用 MySQL、Microsoft SQL 和 Oracle 12c 等数据库系统。
项目管理框架技能
Laravel 开发者需要彻底了解网站开发流程。这包括理解如何运行敏捷和瀑布开发项目。即使你不是项目经理,理解这个过程也会帮助你管理你的工作量,和你的团队一起朝着目标努力。
PHP 经验
由于 Laravel 使用 PHP 框架,您需要了解如何使用 PHP 成为一个好的 Laravel 框架。理想情况下,您还应该知道如何使用不同的 PHP 版本,因为许多项目都运行在旧版本上。
例如,在 2021 年 1 月 27 日由 Kinsta 托管的 WordPress 网站中, 72.1%运行在 PHP 7.3 上,27.8%运行在 PHP 7.4 上,不到 0.1%运行在 PHP 8.0 上。

金斯塔托管网站的 PHP 版本。
网站设计技巧
Laravel 开发人员花费他们的工作日来构建网站和基于网络的应用程序。
当然,你需要理解优秀网页设计的原则,包括:
- 如何使用视觉层次来突出网站的重要部分
- 如何使你的网站保持视觉吸引力(提示:你需要理解黄金比例和斐波那契数列,以及如何在网页设计中使用它们)
- 如何让你的网站易于导航
- 如何有效地使用空白
网络安全知识
Laravel 开发人员需要知道如何构建能够抵御网络攻击的 web 应用程序。这意味着您需要了解 DoS(拒绝服务)、SQL 注入攻击、跨站点脚本攻击、恶意软件攻击和中间人(MITM)攻击的工作原理。虽然你不需要成为一名网络安全专家,但你需要知道如何设计你的 web 应用程序来最小化这些攻击的风险。
MVC 架构知识
由于 Laravel 是基于 MVC 架构的,您需要理解 MVC 是如何工作的,并使用它来构建 web 应用程序。
如何成为一名 Laravel 开发者
假设你是一名有经验的开发人员,正在寻找职业改变。在这种情况下,您可能已经掌握了“成为一名 Laravel 开发人员需要哪些技能”一节中提到的许多技能。
然而,如果你是开发领域的新手,你需要从头开始培养你的技能。
记住这一点,让我们来看看如何成为一名 Laravel 专家。
第一步。学习 PHP
首先,您需要学习如何用 PHP 构建 web 应用程序。学习 PHP,我们建议从一个 PHP 教程开始。教程是学习 PHP 的好方法,因为它们会给你一个 PHP 及其工作原理的完整概述。
需要为您的电子商务网站提供超快的、可靠的、完全安全的托管服务吗?Kinsta 提供所有这些服务,并由 WooCommerce 专家提供 24/7 的世界级支持。查看我们的计划
一旦你完成了一个 PHP 教程,你需要阅读 PHP 开发者写的官方文档。这个文档将帮助你安装 PHP 并掌握它的基本语法。
该手册还涵盖了 PHP 的安全性、特性和许多常见问题,因此它是您在整个职业生涯中想要随身携带的资源。

PHP 手册。
最后,你需要下载一个 PHP 编辑器,这样你就可以创建你的 PHP 项目了。
第二步。通过在线教程学习 Laravel 的基础知识
接下来,你会希望通过在线教程了解更多关于 Laravel 的信息。因为 Laravel 是一个流行的框架,所以有很多网站、视频和播客可供你学习。
在这个学习阶段,你还需要通读官方 Laravel 文档指南。
本指南将指导您在计算机上安装 Laravel 以及如何配置它。像 PHP 手册一样,您应该将 Laravel 指南加入书签,以便以后参考。

拉勒韦尔手册。
第三步。加入 Laravel 社区,向同行学习
一旦你开始学习 PHP 和 Laravel,你会想要加入 Laravel 社区。通过阅读其他社区成员的帖子,与社区内的其他用户互动将有助于培养你的技能和知识。
Laravel 社区也是一个学习像开发人员一样思考的好地方。观察其他开发人员如何处理问题将有助于培养您解决问题的技能。
参与 Laravel 社区的方式有很多。你可以在社交媒体上关注像泰勒·奥特威尔这样的大师,或者加入最受欢迎的 Laravel 论坛和 subreddits。
其中包括:
- Laracasts 论坛,里面充满了来自 Laravel 开发者的问题
- Laravel.io ,帮助开发者解决问题和分享知识
- StackOverflow 上的‘Laravel’标签,允许开发者解决问题
- r/laravel ,包括 laravel 新闻、问题、讨论和教程

Laravel subreddit。
第四步。通过构建 Web 应用程序来练习您的技能
接下来,您将希望通过创建小规模的 Laravel 应用程序来开始构建您的 Laravel 开发技能。虽然您可以通过观看教程学到很多有用的信息,但反复试验是磨练开发技能的最佳方式。
如果你也在这个阶段开始投资组合会有所帮助。投资组合是你时间的绝佳投资,因为你可以用投资组合向潜在的雇主展示你的工作技能。
最好的开发者作品集是简单明了的,包含一个“关于我”的部分,一个你的技能列表,以及最多三个你最好的项目。
对于你包含的每个项目,确保你添加了它的描述,一些开发过程的截图,和一个项目的实时链接。这将有助于你未来的雇主看到你的发展进程。
第五步。建立你的简历并申请成为一名 Laravel 开发者
一旦你发展了你的 Laravel 技能并建立了一个投资组合,你就可以去找一份 Laravel 开发人员的工作了。在这个阶段,你需要重新设计你的简历来反映你的新技能。
正如我们在“成为一名 Laravel 开发人员需要哪些技能”一节中所述,您需要具备以下技能:
- Web 开发
- 数据库管理
- 项目管理
- PHP 经验
- 网站设计
- Laravel 应用程序开发知识
- 网络安全知识
- MVC 架构知识
你还应该在简历中加入你所拥有的任何软技能。
软技能是帮助你适应工作的个人和人际交往技能。许多 Laravel 开发人员具有软技能,如沟通、良好的时间管理、团队合作和解决问题。
在建立你的简历之后,是时候申请工作了。寻找 Laravel 开发人员的公司使用像 Indeed、Glassdoor、CareerBuilder、Monster 这样的工作板,以及像 LaraJobs 这样的 Laravel 专用工作板。

拉约伯板。
重要的
不要忘记在你的求职中包括远程 Laravel 开发者职位!
第六步。专注于不断提高你的学习技能
最后,不要忘记,作为一名专门的 Laravel 开发人员,要不断地培养自己的技能。为了保持你的技能增长,确保总是从你的同事那里寻求反馈,接受新的和具有挑战性的项目,并保持与 Laravel 的新版本保持同步。
雇用 Laravel 开发人员时要注意什么
到目前为止,本文主要关注 Laravel 开发人员。但是雇主呢?如果你想雇佣一个专门的 Laravel 开发人员,你应该寻找一些关键的品质。让我们现在覆盖那些。
1.能在团队中工作的人
Laravel 开发需要团队合作,所以最好的开发人员是分享他们的想法、集体头脑风暴、给出反馈和与同事管理项目的大师。当雇佣一个开发人员时,寻找一个有在紧密的团队环境中工作经验的人。
2.有技术专长的人
由于 Laravel 开发是一项 IT 工作,您需要很强的技术专长。招聘开发人员的时候,找懂 PHP,MVC,web security,Laravel,如何建立和管理数据库,如何用敏捷和瀑布方法管理项目的人。
3.能够管理自己的人
由于 Laravel 开发人员单独完成许多日常任务,Laravel 开发需要良好的自我管理技能。当雇佣 Laravel 开发人员时,寻找有经验的专业人员,他们可以有效地管理他们的时间,几乎不受监督。
4.解决问题的人
Laravel 开发人员不只是构建新的 web 应用程序。他们修复、更新、重新设计和调试旧的应用程序。当雇佣一个 Laravel 开发人员时,你会想找一个能够展示解决问题的技巧和利用反馈来通知他们的设计决策的人。
5.会继续学习的人
自从 2011 年 Laravel 的第一个测试版发布以来,其开发者大约每 6 到 12 个月就会发布一次 Laravel 的新版本。当雇佣一个新的开发者时,找一个能适应 Laravel 最新版本的人。理想情况下,你也希望有人有挑战自我的动力,提高自己的工作技能,这样他们就能在自己的岗位上长期发展。
在本指南的帮助下,学习成为一名 Laravel 开发者所需要知道的一切...那就准备好走上新的事业吧!🚀
摘要
对于热爱构建 web 应用程序并希望使用健壮框架的人来说,Laravel 开发是一个极好的职业选择。
如果你有 PHP 背景或目前是一名开发人员,你可以通过学习使用 Laravel 和用一个新的投资组合来增加你的简历的味道,从而转变成 Laravel 的角色。
如果您是开发新手,请确保您学习了 PHP,并通过教程和测试项目建立了您的 Laravel 技能。
最终,作为一名经验丰富的 Laravel 开发人员,你需要提高你的 PHP、数据库管理、团队合作和开发技能。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
如何在你的 Laravel 项目中使用 Inertia.js
多页面应用程序(MPAs)越来越不受欢迎了。脸书、Twitter、YouTube、Github 等知名平台已经开始使用单页面应用程序(SPA)技术。
这种时髦的技术允许用户快速响应地使用 web 应用程序,因为一切都是在客户端呈现的。然而,对于使用 Laravel 或 Django 这样的框架构建服务器端渲染应用程序的开发人员来说,这可能是一种痛苦。
幸运的是,Inertia.js 介入并前来救援。
您的 Laravel 项目需要的缺失成分?✨惯性。js。在这个全面的指南了解更多🚀 点击发布推文
在本文中,我们将向您展示如何开始使用 Inertia.js,以及如何将其与 Laravel、Vue.js 和 Tailwind CSS 一起使用来创建一个现代博客 web 应用程序。我们还将分享如何让 spa 更适合 SEO,以及一些其他的技巧。
如果你刚刚开始使用 Laravel,我们建议你先阅读这篇文章,这样你就可以准备开始使用了。
为什么是 SPA?
在我们可以问为什么我们应该使用惯性之前,我们必须首先问:“为什么是 SPA?”
为什么有人更喜欢客户端渲染的应用程序,而不是传统的服务器端应用程序?什么会迫使全栈 Laravel 开发者告别刀片组件?
简而言之:因为速度和响应对于任何成功的用户参与都是必不可少的。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
对于 MPAs,浏览器不断地向后端发送请求,然后后端执行大量的数据库查询。在数据库和服务器处理查询并将它们提交给浏览器之后,页面被呈现。
但是水疗不一样。该应用程序将用户需要的一切直接带到页面上,无需浏览器发送查询或重新加载页面来呈现新的 HTML 元素。
因为这种独一无二的用户体验,许多大牌公司都在叫嚣着让他们的网站成为单页应用。
也就是说,对于 Laravel 开发人员来说,创建单页面应用程序可能很困难,因为这需要他们开始使用 Vue.js 或 React 而不是刀片模板,从而导致许多 Laravel 节省时间和精力的宝贵资源的损失。
不过,现在我们有了 Inertia.js,一切都变了。
为什么惯性?
如果 Laravel 开发人员在使用 Inertia 之前使用 Vue 构建 web SPAs,他们必须设置 API 并使用 Laravel 返回 JSON 数据,然后使用 AXIOS 之类的东西来检索 Vue 组件中的数据。他们还需要 Vue 路由器之类的东西来管理路由,这将意味着失去 Laravel 路由,以及中间件和控制器。
另一方面,Inertia.js 使开发人员能够使用经典的服务器端路由和控制器来构建现代的单页 Vue、React 和苗条的应用程序。Inertia 是为 Laravel、Ruby on Rails 和 Django 开发人员设计的,允许他们在不改变创建控制器、从数据库获取数据和呈现视图的编码技术的情况下构建应用程序
多亏了 Inertia.js,Laravel 开发人员将会有宾至如归的感觉。
惯性是如何工作的
仅使用 Laravel 和 Vue 构建 SPA 将为您的前端提供完整的 JavaScript 页面,但这不会为您提供单页应用程序体验。每次点击链接都会导致客户端框架在下一次页面加载时重新启动。
这就是惯性进入画面的地方。
惯性基本上是一个客户端路由库。它允许您在页面之间导航,而不必重新加载整个页面。这是通过``组件完成的,它是一个标准锚点标签的轻量级包装器。
当你点击一个惯性链接,惯性拦截点击,并把你重定向到 XHR。浏览器不会以这种方式重新加载页面,给用户一个完整的单页体验。
惯性入门

A sample page made with Inertia.js
为了理解惯性以及如何将其与 Laravel 集成,我们将使用最强大的组合构建一个名为 Kinsta Blog 的博客 web 应用程序,Laravel 用于后端,Vue.js 用于 JavaScript 前端,Tailwind CSS 用于样式。
如果你更愿意在本地环境中学习本教程,你可以使用 DevKinsta ,这是一个强大的工具,开发者、设计者和代理商可以使用它来构建单页和多页的 WordPress web 应用。幸运的是,使用 Corcel 包,WordPress 可以很容易地与 Laravel 集成。
先决条件
为了充分利用本教程,您应该熟悉以下内容:
- Laravel 基础知识(安装、数据库、数据库迁移、雄辩模型、控制器和路由)
- Vue.js 基础知识(安装、结构和形式)
如果你感到不确定,看看这些精彩的免费和付费教程。否则,我们就跳进来吧。
第一步:安装核心元素
要关注 Inertia.js 并直接进入有趣的部分,请确保您已经准备好以下设置:
-
新安装的 Laravel 9 项目命名为
kinsta-blog -
安装在我们的 Laravel 项目中的 Tailwind CSS CLI
-
Two blade components in kinsta-blog/resources/views for viewing the blog’s homepage and a single article on the blog as showing below:
"/resources/views/index.blade.php":
<!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Kinsta Blog</title> </head> <body> <header> <h1>Kinsta Blog</h1> </header> <main> <h2>Read our latest articles</h2> <section> <article> <div> <img srcimg/kinsta-logo.png" alt="Article thumbnail" /> </div> <h3>Title for the blog</h3> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Illum rem itaque error vel perferendis aliquam numquam dignissimos, expedita perspiciatis consectetur! </p> <a href="#">Read more</a> </article> </section> </main> <footer> <h2>Join our Newsletter</h2> <input type="email" /> </footer> </body> </html>"/resources/views/show.blade.php":
<!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Kinsta Blog</title> </head> <body> <main> <article> <div> <img srcimg/kinsta-logo.png" alt="Article thumbnail" /> </div> <h1>Title for the blog</h1> <p>Article content goes here</p> </article> </main> <footer> <h2>Join our Newsletter</h2> <input type="email" /> </footer> </body> </html> -
MySQL local database named
kinsta_blogconnected to our project:。env :
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=kinsta_blog DB_USERNAME=root DB_PASSWORD= -
Article model, migrations, and factories:
" app/Models/Article.php":
<?php namespace AppModels; use IlluminateDatabaseEloquentFactoriesHasFactory; use IlluminateDatabaseEloquentModel; class Article extends Model { use HasFactory; protected $fillable = ['title', 'excerpt', 'body']; }"数据库/迁移/create _ articles _ table . PHP":
<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; return new class extends Migration { public function up() { Schema::create('articles', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('excerpt'); $table->text('body'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('articles'); } };"数据库/工厂/ArticleFactory.php":
<?php namespace DatabaseFactories; use IlluminateDatabaseEloquentFactoriesFactory; class ArticleFactory extends Factory { public function definition() { return [ 'title' => $this->faker->sentence(6), 'excerpt' => $this->faker->paragraph(4), 'body' => $this->faker->paragraph(15), ]; } }
这就是我们开始行动所需要的一切!现在言归正传,将 Inertia.js 引入我们的项目。
步骤 2:安装惯性
惯性安装过程分为两个主要阶段:服务器端(Laravel)和客户端(VueJs)。
惯性文档中的官方安装指南有点过时,因为默认情况下, Laravel 9 现在使用 Vite ,但是我们也将仔细阅读。
1.服务器端
我们需要做的第一件事是通过 Composer 用下面的终端命令安装惯性服务器端适配器。
composer require inertiajs/inertia-laravel
现在我们将设置我们的根模板,这将是一个用于加载 CSS 和 JS 文件的单个刀片文件,以及一个用于启动我们的 JavaScript 应用程序的惯性根。
因为我们使用的是最新版本的 Laravel 9 v9.3.1,所以我们还必须通过将 Vite 包含在/resources/views/app.blade.php的标签中来让它发挥它的魔力:
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- Fetch project name dynamically -->
<title inertia>{{ config('app.name', 'Laravel') }}</title>
<!-- Scripts -->
@vite('resources/js/app.js') @inertiaHead
</head>
<body class="font-sans antialiased">
@inertia
</body>
</html>
请注意,我们如何通过将Inertia属性添加到<title>标签来动态获取项目标题。
我们还在头部添加了@vite指令,以便让 Vite 知道我们创建应用程序和导入 CSS 的 JavaScript 主文件的路径。Vite 是一个有助于 JavaScript 和 CSS 开发的工具,它允许开发人员查看前端更改,而不必在本地开发期间刷新页面。
我们的下一步将是创建 HandleInertiaRequests 中间件并将其发布到我们的项目中。我们可以通过在项目的根目录中启动下面的终端命令来实现这一点:
php artisan inertia:middleware
完成后,进入“App/Http/ 内核,将HandleInertiaRequests注册为你的网络中间件的最后一项:
'web' => [
// ...
AppHttpMiddlewareHandleInertiaRequests::class,
],
2.客户端
接下来,我们必须以与服务器端相同的方式安装我们的 frontend Vue.js 3 依赖项:
npm install @inertiajs/inertia @inertiajs/inertia-vue3
// or
yarn add @inertiajs/inertia @inertiajs/inertia-vue3
接下来,您需要拉入 Vue.js 3:
npm install [[email protected]](/cdn-cgi/l/email-protection)
然后更新主 JavaScript 文件,用 Vue.js 3、Vite 和 Laravel 初始化 Inertia.js:
" resources/js/ app.js ":
import "./bootstrap";
import "../css/app.css";
import { createApp, h } from "vue";
import { createInertiaApp } from "@inertiajs/inertia-vue3";
import { resolvePageComponent } from "laravel-vite-plugin/inertia-helpers";
createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) =>
resolvePageComponent(
`./Pages/${name}.vue`,
import.meta.glob("./Pages/**/*.vue")
),
setup({ el, app, props, plugin }) {
return createApp({ render: () => h(app, props) })
.use(plugin)
.mount(el);
},
});
在上面的代码片段中,我们使用 Laravel 的插件resolvePageComponent,我们告诉它从目录中解析我们的组件。/Pages/$name.vue 。这是因为在我们的项目中,我们将把惯性组件保存在这个目录中,这个插件将帮助我们从正确的目录中自动加载这些组件。
剩下的就是安装vitejs/plugin-vue:
npm i @vitejs/plugin-vue
并更新 vite.config.js 文件:
import { defineConfig } from "vite";
import laravel from "laravel-vite-plugin";
import vue from "@vitejs/plugin-vue";
export default defineConfig({
plugins: [
laravel({
input: ["resources/css/app.css", "resources/js/app.js"],
refresh: true,
}),
vue({
template: {
transformAssetUrls: {
base: null,
includeAbsolute: false,
},
},
}),
],
});
最后一步是安装我们的依赖项并编译我们的文件:
npm install
npm run dev
瞧!您已经有了一个带有 Vue.js 3 和 Vite 的 Laravel 9 应用程序。现在我们需要看到实际发生的事情!
创建惯性页面
你还记得那两个刀片文件(索引和显示)用于查看我们的主页和一篇文章吗?
使用惯性时我们需要的唯一刀片文件是app.blade.php,我们在安装惯性时已经用过一次了。那么现在这些文件会怎么样呢?
我们将把这些文件从刀片组件转换成 Inertia.js 组件。
应用程序中的每个页面都有自己的控制器和带有惯性的 JavaScript 组件。这使您可以只获得该页面所需的数据,而无需使用 API。惯性页面只不过是 JavaScript 组件,在我们的例子中,它们是 Vue.js 组件。他们没有什么特别值得注意的地方。所以我们要做的是将所有的 HTML 内容包装在<template>标签之间,所有与 JavaScript 相关的内容都用<script>标签包装。
创建一个名为“Pages”的文件夹,并将您的文件移到那里。于是我们就有了“index.blade.php、“show.blade.php”中的“”。/resources/js/Pages ”。然后,我们将把文件格式改为"。vue”而不是“. blade.php”,同时将其名称的第一个字母大写,并将其内容转换为标准的 Vue.js 组件。我们将排除<html>、<head>和<body>标签,因为它们已经包含在主根叶片组件中。
" resources/js/Pages/index . vue":
<script setup>
//
</script>
<template>
<header>
<h1>Kinsta Blog</h1>
</header>
<main>
<h2>Read our latest articles</h2>
<section>
<article>
<div>
<img srcimg/kinsta-logo.png" alt="Article thumbnail" />
</div>
<h3>Title for the blog</h3>
<p>
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Illum rem
itaque error vel perferendis aliquam numquam dignissimos, expedita
perspiciatis consectetur!
</p>
<a href="#">Read more</a>
</article>
</section>
</main>
<footer>
<h2>Join our Newsletter</h2>
<input type="email" />
</footer>
</template>
" resources/js/Pages/show . vue":
<script setup>
//
</script>
<template>
<header>
<h1>Welcome to Kinsta Blog</h1>
</header>
<main>
<article>
<h1>Title for the blog</h1>
<p>Article content goes here</p>
</article>
</main>
<footer>
<h2>Join our Newsletter</h2>
<input type="email" />
</footer>
</template>
有件事真的困扰着我!我们一直在每个组件中复制和粘贴我们的页眉和页脚,这不是一个很好的做法。让我们创建一个惯性基本布局来存储我们的持久组件。
在“ /resources/js ”中创建一个名为“Layouts”的文件夹,并在该文件夹中创建一个名为“KinstaLayout.vue”的文件。这个文件将有我们的页眉和页脚,以及带有一个<slot />的main,以允许用这个布局包装的所有组件嵌入其中。该文件应该如下所示:
" resources/js/layouts/kintal layout . view":
<script setup></script>
<template>
<header>
<h1>Kinsta Blog</h1>
</header>
<main>
<slot />
</main>
<footer>
<h2>Join our Newsletter</h2>
<input type="email" />
</footer>
</template>
然后,我们将在页面中导入这个新布局,并用它包装所有的 HTML 内容。我们的组件应该是这样的:
索引.视图:
<script setup>
import KinstaLayout from "../Layouts/KinstaLayout.vue";
</script>
<template>
<KinstaLayout>
<section>
<h2>Read our latest articles</h2>
<article>
<div>
<img srcimg/kinsta-logo.png" alt="Article thumbnail" />
</div>
<h3>Title for the blog</h3>
<p>
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Illum rem
itaque error vel perferendis aliquam numquam dignissimos, expedita
perspiciatis consectetur!
</p>
<a href="#">Read more</a>
</article>
</section>
</KinstaLayout>
</template>
显示。视图:
<script setup>
import KinstaLayout from "../Layouts/KinstaLayout.vue";
</script>
<template>
<KinstaLayout>
<article>
<h1>Title for the blog</h1>
<p>Article content goes here</p>
</article>
</KinstaLayout>
</template>
Laravel 路线和惯性渲染
首先,让我们使用教程起点的" ArticleFactory "文件,将一些文章植入我们的数据库。
"数据库/种子/databaseSeeder.php":
<?php
namespace DatabaseSeeders;
use AppModelsArticle;
use IlluminateDatabaseSeeder;
class DatabaseSeeder extends Seeder
{
public function run()
{
Article::factory(10)->create();
}
}
然后点击下面的终端命令来迁移您的表,并从工厂中植入假数据:
php artisan migrate:fresh --seed
这将在数据库中创建 10 个假文章,我们需要使用 Laravel 路由将它们传递给我们的视图。现在,我们使用惯性来渲染视图,我们用来编写路线的方式将略有改变。让我们在“routes/web.php中创建我们的第一条 Laravel 惯性路线,并从“/resources/js/Pages/index . vue返回主页视图。
"路线/web.php":
<?php
use AppModelsArticle;
use IlluminateSupportFacadesRoute;
use InertiaInertia;
Route::get('/', function () {
return Inertia::render('Index', [
'articles' => Article::latest()->get()
]);
})->name('home');
注意,我们导入了Inertia并且没有使用view() Laravel 助手返回视图,而是使用了Inertia::render。默认情况下,惯性还会在“resources/js”的 Pages 文件夹中查找我们在路径中提到的文件名。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
转到索引文件,将检索到的数据设置为一个 prop,并使用v-for遍历它们以显示结果。在脚本标记之间,将传递的数据定义为一个属性。惯性需要知道的只是您期望的数据类型,在我们的例子中是一个包含文章数组的“Article”对象。
" resources/js/Pages/index . vue":
<script setup>
import KinstaLayout from "../Layouts/KinstaLayout.vue";
defineProps({
Articles: Object,
});
</script>
注意,只将它定义为一个 prop 而不返回它就足够了,因为我们对 Vue.js 3 composition API 使用的是setup格式。如果我们使用选项 API,那么我们需要返回它。
让我们来循环:
<template>
<KinstaLayout>
<h2>Read our latest articles</h2>
<section>
// Looping over articles
<article v-for="article in articles":key="article.id">
<div>
<img srcimg/kinsta-logo.png" alt="Article thumbnail" />
</div>
<h3>{{article.title}}</h3>
<p>{{article.excerpt}}</p>
<a href="#">Read more</a>
</article>
</section>
</KinstaLayout>
</template>
npm run dev(让它运行,因为我们正在使用 Vite)和php artisan serve启动 laravel 开发服务器并访问我们的网站,我们将看到预期的页面显示数据库中的所有十篇文章。
现在,我们正在使用谷歌 Chrome 的 Vue DevTools 扩展,它允许我们调试我的应用程序。让我们向您展示我们的数据是如何传递给组件的。

Inspecting Inertia properties.
“Articles”作为包含文章数组的 prop 对象传递给组件;数组中的每个商品也是一个对象,其属性对应于它从数据库中获取的数据。这意味着我们从 Laravel 转移到 Inertia 的任何数据都将被视为一个道具。
使用带有 Inertia.js 的顺风 CSS
由于 Tailwind 已经安装在我们项目的起点,我们需要做的就是告诉它读取我们的惯性组件。这可以通过编辑如下的" tailwind.config.js "来完成:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./storage/framework/views/*.php",
"./resources/views/**/*.blade.php",
"./resources/js/**/*.vue",
],
theme: {
extend: {},
},
plugins: [],
};
然后确保我们已经在“resources/js/ app.js ”中导入了 CSS 文件:
import "../css/app.css";
现在我们已经准备好为组件设计样式了。
" resources/js/Pages/index . vue":
<script setup>
import KinstaLayout from "../Layouts/KinstaLayout.vue";
defineProps({
articles: Object,
});
</script>
<template>
<KinstaLayout>
<h2 class="text-2xl font-bold py-10">Read our latest articles</h2>
<section class="space-y-5 border-b-2 pb-10">
<article
v-for="article in articles"
:key="article.id"
class="flex justify-center items-center shadow-md bg-white rounded-xl p-4 mx-auto max-w-3xl"
>
<img
srcimg/kinsta-logo.png"
class="w-32 h-32 rounded-xl object-cover"
alt=""
/>
<div class="flex flex-col text-left justify-between pl-3 space-y-5">
<h3
class="text-xl font-semibold text-indigo-600 hover:text-indigo-800"
>
<a href="#">{{ article.title }}</a>
</h3>
<p>
{{ article.excerpt }}
</p>
<a
href="#"
class="text-indigo-600 hover:text-indigo-800 w-fit self-end font-semibold"
>Read more</a
>
</div>
</article>
</section>
</KinstaLayout>
</template>
" resources/js/layouts/kintal layout . view":
<script setup></script>
<template>
<Header
class="bg-gradient-to-r from-blue-700 via-indigo-700 to-blue-700 w-full text-center py-4"
>
<h1 class="text-white font-bold text-4xl">Kinsta Blog</h1>
</Header>
<main class="container mx-auto text-center">
<slot />
</main>
<footer
class="bg-gradient-to-b from-transparent to-gray-300 w-full text-center mt-5 py-10 mx-auto"
>
<h2 class="font-bold text-xl pb-5">Join our Newsletter</h2>
<input
class="rounded-xl w-80 h-12 px-3 py-2 shadow-md"
type="email"
placeholder="Write your email.."
/>
</footer>
</template>
如果你看看浏览器,你会注意到 Vite 已经用 Tailwind magic 更新了页面。

Rendering Inertia properties.
惯性环节
现在我们有了一个可以显示数据库中所有文章的工作主页,我们需要创建另一个路径来显示单个文章。让我们创建一个新路由,并将 URL 设置为一个“id”通配符:
"路线/web.php"
<?php
use AppModelsArticle;
use IlluminateSupportFacadesRoute;
use InertiaInertia;
Route::get('/', function () {
return Inertia::render('Index', [
'articles' => Article::latest()->get()
]);
})->name('home');
Route::get('/posts/{article:id}', function (Article $article) {
return Inertia::render('Show', [
'article' => $article
]);
})->name('article.show');
我们导入了“Article”模型,并添加了一条新的路线来返回 Show.vue 惯性组件。我们还利用了 Laravel 的路由模型绑定,它允许 Laravel 自动获取我们引用的文章。
我们现在需要的是通过点击主页上的链接来访问这条路线,而不必重新加载整个页面。这可以通过惯性的神奇工具来实现。我们在介绍中提到,惯性使用作为标准锚标签<a>的包装器,这个包装器旨在使页面访问尽可能无缝。在惯性中,``标签可以作为执行<GET>请求的锚标签,但是它也可以同时作为<button>和<form>。让我们看看如何将它应用到我们的项目中。
在我们的 Index.vue 中,我们将从惯性中导入,并移除锚标签`<a>`并替换为惯性标签。href属性将被设置为我们之前为查看文章而创建的路由 URL:
<script setup>
import KinstaLayout from "../Layouts/KinstaLayout.vue";
import { Link } from "@inertiajs/inertia-vue3";
defineProps({
articles: Object,
});
</script>
<template>
<KinstaLayout>
<section class="space-y-5 border-b-2 pb-10">
<h2 class="text-2xl font-bold pt-10 mx-auto text-center">
Read our latest articles
</h2>
<article
v-for="article in articles"
:key="article.id"
class="flex justify-center items-center shadow-md bg-white rounded-xl p-4 mx-auto max-w-3xl"
>
<img
srcimg/kinsta-logo.png"
class="w-32 h-32 rounded-xl object-cover"
alt=""
/>
<div
class="flex flex-col text-left justify-between pl-3 space-y-5"
>
<h3
class="text-xl font-semibold text-indigo-600 hover:text-indigo-800"
>
{{
article.title
}}
</h3>
<p>
{{ article.excerpt }}
</p>
Read more
</div>
</article>
</section>
</KinstaLayout>
</template>
让我们用顺风设计 Show.vue ,让它看起来更漂亮一点,为我们的访问做好准备。我们还需要让它知道它应该期待一个“Article”对象,并将其设置为一个道具:
<script setup>
import KinstaLayout from "../Layouts/KinstaLayout.vue";
defineProps({
article: Object,
});
</script>
<template>
<KinstaLayout>
<article class="mx-auto mt-10 flex justify-center max-w-5xl border-b-2">
<img
srcimg/kinsta-logo.png"
class="w-80 h-80 rounded-xl mx-auto py-5"
alt=""
/>
<div class="text-left flex flex-col pt-5 pb-10 px-10">
<h1 class="text-xl font-semibold mb-10">{{ article.title }}</h1>
<p>{{ article.body }}</p>
</div>
</article>
</KinstaLayout>
</template>
现在当我们点击文章标题或“阅读更多”时,我们会神奇地被传送到 Show.vue 而无需刷新页面。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features

Inertia links in place.
在我们的例子中,我们使用作为锚标签,向路由发送`GET`请求并返回新数据,但是我们也可以使用来发送POST、PUT、PATCH和DELETE
"路线/web.php":
Logout
你应该知道的惯性技巧和窍门
我们现在有一个用 Laravel,Inertia 和 Tailwind CSS 构建的工作 SPA。但是惯性可以帮助我们实现更多。是时候学习一些惯性技术了,这对开发人员和应用程序访问者都有帮助。
生成 URL
你可能已经注意到了,我们已经在没有使用它的情况下在我们的 Laravel 路线上添加了名字。惯性允许我们在组件中使用命名的路线,而不是手动写下完整的路线。
我们可以通过在我们的项目中安装 Ziggy 包来实现这一点:
composer require tightenco/ziggy
然后转到“resources/js/app.js ”,更新如下:
import "./bootstrap";
import "../css/app.css";
import { createApp, h } from "vue";
import { createInertiaApp } from "@inertiajs/inertia-vue3";
import { resolvePageComponent } from "laravel-vite-plugin/inertia-helpers";
import { ZiggyVue } from "../../vendor/tightenco/ziggy/dist/vue.m";
createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) =>
resolvePageComponent(
`./Pages/${name}.vue`,
import.meta.glob("./Pages/**/*.vue")
),
setup({ el, app, props, plugin }) {
return createApp({ render: () => h(app, props) })
.use(plugin)
.use(ZiggyVue, Ziggy)
.mount(el);
},
});
转到“/resources/views/app.blade.php,用@route指令更新标题:
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Fetch project name dynamically -->
<title inertia>{{ config('app.name', 'Laravel') }}</title>
<!-- Scripts -->
@routes
@vite('resources/js/app.js')
@inertiaHead
</head>
<body class="font-sans antialiased">
@inertia
</body>
</html>
…点击以下两个终端命令刷新您的 NPM 软件包:
npm install && npm run dev
这个包允许我们在惯性组件中使用命名的路线,所以让我们转到 Index.vue 并删除旧的手动路线,用路线名称替换它,同时正常传递数据,就像在我们的控制器中一样。
我们将替换它:
{{ article.title }}
…有了这个:
{{ article.title }}
这将为我们提供完全相同的行为,但它对开发人员更友好,并且在您的路线需要许多参数时非常有用。
进展指标
这是 Inertia.js 最好的特性之一;因为 SPA 提供了一种交互式的用户体验,不断地反馈请求是否正在加载将是对应用程序的一个极好的补充。这可以通过一个独立的惰性库来实现。
“@inertiajs/progress”库是围绕 NProgress 的包装器,它根据惯性事件有条件地显示加载指示器。您真的不需要知道这在幕后是如何工作的,所以让我们直接让它工作吧。
我们可以用下面的终端命令安装这个库:
npm install @inertiajs/progress
安装完成后,我们需要将它导入到“ resources/js/app.js ”中
import "./bootstrap";
import "../css/app.css";
import { createApp, h } from "vue";
import { createInertiaApp } from "@inertiajs/inertia-vue3";
import { resolvePageComponent } from "laravel-vite-plugin/inertia-helpers";
import { ZiggyVue } from "../../vendor/tightenco/ziggy/dist/vue.m";
import { InertiaProgress } from "@inertiajs/progress";
createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) =>
resolvePageComponent(
`./Pages/${name}.vue`,
import.meta.glob("./Pages/**/*.vue")
),
setup({ el, app, props, plugin }) {
return createApp({ render: () => h(app, props) })
.use(plugin)
.use(ZiggyVue, Ziggy)
.mount(el);
},
});
InertiaProgress.init({ color: "#000000", showSpinner: true });
这将显示一个黑色的加载栏和一个加载微调器,但是我们可以改变颜色以及其他有用的选项,这些选项可以在 Inertia.js 进度指示器文档中找到。

The Inertia progress indicator (top right).
滚动管理
在某些情况下,您可能希望导航到新页面,同时保持相同的滚动位置。如果你允许用户发表评论,也许你会需要它;这将提交一个表单并将数据库中的新评论加载到您的组件中;您希望这种情况发生时,用户不会丢失滚动位置。惯性为我们解决了这个问题。
在我们的例子中,让我们将它应用到 Index.vue 中的标签。为了在用惯性的重定向到不同页面时保持滚动位置,我们需要做的就是给``添加preserve-scroll属性:
{{ article.title }}
搜索引擎优化技巧
自从 SPAs 诞生以来,人们就一直在关注搜索引擎优化(SEO)。众所周知,如果您使用 SPA 方法,搜索引擎将很难抓取您的 web 应用程序,因为一切都是客户端呈现的,导致您的网站不会显示在搜索结果的顶部;然而,为什么像脸书和 Github 这样受欢迎的平台现在是 spa,并且在 SEO 方面仍然表现良好?
这不再是一个不可能完成的任务了。惯性是提供一些解决方案,以帮助您的水疗成为搜索引擎优化友好。
带 Laravel 和 Vite 的惯性 Vue SSR
搜索引擎总是在你的网站上寻找 HTML,以便识别内容;然而,如果你的 URL 中没有 HTML,这项工作会变得更加困难。在开发 spa 时,你的页面上只有 JavaScript 和 JSON。Inertia 引入了服务器端呈现(SSR)特性,您可以将它添加到您的应用程序中。这允许您的应用程序在服务器上预先呈现初始页面访问,然后将呈现的 HTML 发送到浏览器。这让用户在完全加载之前就能看到你的页面并与之互动,而且它还有其他优势,比如缩短搜索引擎索引你的网站的时间。
总结一下它是如何工作的,Inertia 将识别它是否运行在 Node.js 服务器上,并将组件名称、属性、URL 和资产版本呈现为 HTML。这将为用户和搜索引擎提供你的页面所能提供的一切。
然而,因为我们处理的是 Laravel,这没有什么意义,因为 Laravel 是一个 PHP 框架,并不运行在 Node.js 服务器上。因此,我们将请求转发给 Node.js 服务,该服务将呈现页面并返回 HTML。默认情况下,这将使我们的 Laravel Vue 应用程序 SEO 友好。
首先,我们需要安装 Vue.js SSR npm 包:
npm install @vue/server-renderer
另一个有用的惯性“NPM”包提供了一个简单的“HTTP”服务器。强烈建议您安装它:
npm install @inertiajs/server
然后,在“resources/js/”中,我们将添加一个名为 ssr.js 的新文件。这个文件将非常类似于我们在安装惯性时创建的 app.js 文件,只是它将在 Node.js 而不是浏览器中执行:
import { createSSRApp, h } from "vue";
import { renderToString } from "@vue/server-renderer";
import { createInertiaApp } from "@inertiajs/inertia-vue3";
import createServer from "@inertiajs/server";
import { resolvePageComponent } from "laravel-vite-plugin/inertia-helpers";
import { ZiggyVue } from "../../vendor/tightenco/ziggy/dist/vue.m";
const appName = "Laravel";
createServer((page) =>
createInertiaApp({
page,
render: renderToString,
title: (title) => `${title} - ${appName}`,
resolve: (name) =>
resolvePageComponent(
`./Pages/${name}.vue`,
import.meta.glob("./Pages/**/*.vue")
),
setup({ app, props, plugin }) {
return createSSRApp({ render: () => h(app, props) })
.use(plugin)
.use(ZiggyVue, {
...page.props.ziggy,
location: new URL(page.props.ziggy.location),
});
},
})
);
确保不要将所有内容都包含在 ssr.js 文件中,因为访问者看不到它;该文件仅用于搜索引擎和浏览器显示您页面中的数据,因此只包含对您的数据重要的内容或能使您的数据可用的内容。
“默认情况下,Inertia 的 SSR 服务器将在端口 13714 上运行。但是,您可以通过向 createServer 方法提供第二个参数来更改这一点。惯性 DOCss。
Inertia.js 文档没有解释如何将 Inertia SSR 与 Vite 集成在一起,但是我们现在将讨论这个问题。转到 vite.config.js 并粘贴以下内容:
import { defineConfig } from "vite";
import laravel from "laravel-vite-plugin";
import vue from "@vitejs/plugin-vue";
export default defineConfig({
plugins: [
laravel({
input: "resources/js/app.js",
ssr: "resources/js/ssr.js",
}),
vue({
template: {
transformAssetUrls: {
base: null,
includeAbsolute: false,
},
},
}),
],
});
接下来,转到 package.json 并更改构建脚本:
"build": "vite build && vite build --ssr"
现在,如果我们运行npm run build,Vite 将为生产构建我们的 SSR 包。欲了解更多信息,请访问惯性 SSR 文档和 Vite SSR 文档。
标题和元
因为 JavaScript 应用程序是在文档的<body>中呈现的,所以它们不能向文档的<head>呈现标记,因为这超出了它们的范围。惯性有一个<Head>组件,可以用来设置页面<title>、<meta>标签和其他<head>组件。
要将<head>元素添加到您的页面,我们必须像处理``组件一样从惯性中导入<head>:
import { Head } from '@inertiajs/inertia-vue3'
<Head>
<title>Kinsta Blog</title>
<meta name="description" content="Kinsta blog for developers">
</Head>
我们还可以为所有页面添加一个全局标题,这将在每个页面的标题旁边添加您的应用程序名称。我们已经在 app.js 文件中这样做了:
createInertiaApp({
title: (title) => `${title} - ${appName}`,
//
});
这意味着如果我们在我们的应用程序的主页中添加一个标题<head title="Homepage">,这个就会被渲染成这样:<title>Home - My App</title>。
监控你的应用
速度是优化网站 SEO 性能的最重要因素之一。如果你在你的网站上使用 WordPress,出于这个原因, Kinsta APM 将协助你监控并密切关注你的应用程序。它可以帮助你发现 WordPress 的性能问题,并且可以在所有 Kinsta 托管的网站上免费获得。
T3】
摘要
Inertia.js 是可用的最重要的技术之一;将它与 Laravel 混合,您就有了一个用 PHP 和 JavaScript 构建的现代单页面应用程序。Laravel 的创造者 Taylor Otwell 对惯性非常感兴趣,以至于 Laravel 推出了其最受欢迎的入门套件 Laravel Breeze 和 Jetstream,支持惯性和 SSR。
了解如何开始使用 Inertia.js ✨and✨如何使用它与 Laravel、Vue.js 和 Tailwind CSS 一起创建现代博客 web ap 在本指南中🛠 点击发推
如果你是 Laravel 的粉丝或专业开发人员,Inertia.js 无疑会吸引你的眼球。在本教程中,我们只用了几分钟就制作了一个非常简单明了的博客。关于惯性还有很多东西需要学习,这可能只是许多文章和教程中的第一篇。
你还想让我们探索拉弗尔的什么?请在下面的评论区告诉我们。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
Laravel Logging:您需要知道的一切
当开发一个现代的应用程序时,日志应该在优先级列表的顶端。
日志记录提供了一种在开发和生产中可视化您的应用程序的方法,实现了透明性和可见性。通过适当的结构化日志记录,现代应用程序可以变得更容易维护,因为我们可以主动识别应用程序中的故障点和性能瓶颈。
Laravel 框架附带了一个健壮的日志记录系统,它可以处理配置一个开箱即用的适当结构的日志记录系统所涉及的所有障碍。Laravel 6.5 中引入的这个新的日志系统非常强大,我们将在本文中探讨它。
本文将探讨 Laravel 日志记录的基础知识,以及为什么您应该在下一个项目中使用 Laravel 日志记录。我们将详细讨论结构化日志记录和集中式日志记录。此外,我们将学习如何通过构建一个 Todo 应用程序来实现 Laravel 日志记录。
如果您已经掌握了以下内容,那么您将从本文中获得更多信息:
- 良好的网络开发知识
- 对 Laravel 的基本了解
- 使用 Laravel 构建应用程序
什么是 Laravel 测井?
Laravel 日志记录是关于 Laravel 如何处理日志记录,或者自动问题报告,使用一个叫做 Monolog 的病毒式 PHP 日志记录系统。然而,由于 Laravel 的哲学是使用流行的现有库来实现不同的框架特性,Laravel 使用 Monolog 来满足其所有的日志记录需求。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
Monolog 是一个高度灵活和流行的 PHP 日志库,我们可以配置它来将您的日志发送到文件、套接字、数据库和其他 web 服务。Monolog 提供了一个熟悉的接口,用于将日志从标准文本文件写入高级第三方日志管理服务。Laravel 通常将 Monolog 设置为使用标准日志配置文件。
有关 Monolog 及其特性的更多信息,请查看官方文档,因为这超出了本文的范围。
在我们开始使用 Monolog 配置和实现 Laravel 日志记录之前,让我们探索一下使用 Laravel 日志记录的更多原因和不同类型。
为什么使用 Laravel 日志记录?
为什么日志记录是必要的?
十二要素应用程序宣言将日志记录视为现代应用程序的关键问题之一,因为日志记录是性能和监控的关键。
日志有助于详细了解生产中发生的错误以及它们的来源。此外,通过适当的日志结构,它可以显示特定的用户、导致错误的操作以及更快修复和维护错误的可能解决方案。
结构化日志记录是生产应用程序中的救命稻草,它可以帮助解决生产中的缺陷和问题。此外,您可以使用专门的日志记录工具实时监控和收集所有日志消息,以便进行实时分析和报告。
由于这些原因,您需要在下一个现代应用程序项目中将结构化日志记录作为重中之重。
让我们看一下可用的不同日志样式的概述。
Laravel 测井基础
学习日志记录的基础知识将帮助您理解 Laravel 如何处理日志记录,以及如何改进您的结构化日志记录实践。
让我们检查日志记录中的两个基本概念,以便更好地理解如何实现我们的日志记录过程。
Laravel 结构化测井
在软件开发中,结构化日志记录是为应用程序日志实现预先确定的一致的消息格式。与常规文本格式相比,这种格式允许将消息视为可以更好地监控、操作和可视化的数据。
您必须在现代应用程序开发中实现结构化日志记录方法,因为当您的应用程序在生产中出现问题时,日志文件是开发人员的重要资产。
由于 Laravel 使用 Monolog,开发人员可以通过配置日志记录器来接收特定类型的信息,以不同格式存储日志文件,并将日志发送到各种第三方日志管理服务进行可视化,从而快速实现结构化日志记录。
Laravel 集中测井
在集中式日志记录系统中,日志从多个来源发送到集中式日志管理(CLM)解决方案,以便于整合和可视化。然而,CLM 是一个专门的日志记录解决方案,它从不同的来源收集日志消息,并整合数据,以便于处理和可视化。
除了数据收集之外,预计 CLM 系统还将支持日志数据分析和分析后数据的清晰呈现。
结构化日志记录与基本日志记录
让我们研究一下结构化日志记录和基本(非结构化)日志记录之间的区别,以及为什么应该在 Laravel 项目中使用结构化日志记录。
基本日志记录
在基本日志记录中,日志文件以原始格式存储,用于查询和识别单个日志的数据有限。
使用基本日志记录时,开发人员将无法使用第三方分析工具来读取、查看和分析日志,除非他们开发一个定制工具或坚持使用支持其日志格式的有限工具。
避免使用基本日志记录有三大原因:
- 没有额外的支持,集中式日志管理系统无法处理数据。
- 需要定制的解决方案来读取和解析基本日志解决方案的数据。
- 对于管理员来说,读取基本的日志记录数据可能是一项挑战,因为这些数据是原始的、非结构化的。
结构化日志记录
结构化日志记录通过使用支持标准日志结构的开源第三方日志分析工具来读取、查看和分析日志,从而节省了开发人员的时间。
如果日志包含下面列出的正确数据,将会很有帮助,这也是结构化日志记录的目标。我们可以使用结构化日志记录中包含的数据来创建仪表板、图形、图表和任何其他有用的可视化工具,以确定应用程序的健康状况。
这些是我们可以在结构化日志消息中包含的信息的基本示例。此外,您可以完全自定义数据以满足您的需求。
以下是您可以使用结构化日志记录收集的一些数据示例:
- 用于执行该功能的端口
- 事件发生的日期和时间
- 客户用户名或 ID
- 事件的描述(日志消息)
- 用于执行该功能的协议
- 触发事件的位置(指明 API 或正在运行的应用程序)
- 唯一的事件 ID
- 触发的操作类型(日志级别)
日志应该包含足够的数据,以便于可视化解决方案或日志事件的原因。另外,请注意,您不应该在日志中存储所有类型的信息,如密码或敏感数据。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
既然我们已经大致了解了 Laravel 日志记录的内容,那么让我们继续通过构建一个应用程序来实现 Laravel 日志记录,将日志记录作为一等公民。
如何用 Todo App 实现 Laravel 日志
现在,我们将通过创建一个新的 Laravel 项目并实现 Laravel 日志来应用我们到目前为止所学的内容。
如果你以前没有用过 Laravel,你可以通读什么是 Laravel或者偷看我们的优秀 Laravel 教程列表来入门。
设置 Laravel
首先,我们将使用下面的命令创建一个新的 Laravel 实例。你可以查阅官方文档了解更多。
在运行下面的命令之前,打开您的控制台并导航到您存储 PHP 项目的位置。确保正确安装和配置了 Composer 。
composer create-project laravel/laravel laravel-logging-app
cd laravel-logging-app // Change directory to current Laravel installation
php artisan serve // Start Laravel development server
配置和设定数据库种子
接下来,我们将建立我们的数据库,创建一个新的Todo模型,并播种 200 个假数据进行测试。
打开数据库客户端并创建一个新数据库。我们将对名称laravel_logging_app_db做同样的操作,然后填充我们的。env 文件与数据库凭证:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_logging_app_db
DB_USERNAME=//DB USERNAME HERE
DB_PASSWORD=//DB PASSWORD HERE
接下来,我们将运行以下命令来同时创建迁移和Todo模型:
php artisan make:model Todo -mc
打开新创建的 migration found 数据库/migrations/XXX-create-todos-XXX . PHP并粘贴以下代码:
<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;
class CreateTodosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('todos', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('description')->nullable();
$table->boolean('is_completed')->default(false);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('todos');
}
}
你可以通过学习使用 faker 在 Laravel 中播种你的数据库来用 Faker 数据播种你的 todos。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
独白概述
使用 Laravel Monolog,您可以将结构化日志流式传输并发送到不同的渠道,如电子邮件、Slack、文件、套接字、收件箱、数据库和各种 web 服务。在 Laravel 中,您可以从位于 config/logging.php 中的一个配置文件中配置日志记录。
配置文件带有预定义的日志驱动程序可供选择,默认驱动程序是一个stack,它使用single通道记录到一个 laravel.log 文件,该文件位于存储/日志文件夹中。我们将通过使用几个 Laravel 日志驱动程序来演示结构化日志记录。
Laravel 提供了一些方法来与日志交互,正如 TodosController.php 控制器文件中所展示的那样。
在控制器中写入日志消息
打开新创建的TodosController.php控制器文件找到 app/Http/Controllers 文件夹,粘贴以下代码:
<?php
namespace AppHttpControllers;
use AppModelsTodo;
use IlluminateHttpRequest;
use AppHttpControllersController;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesLog;
class TodosController extends Controller
{
public function index(Request $request)
{
$todos = Todo::all();
Log::warning('User is accessing all the Todos', ['user' => Auth::user()->id]);
return view('dashboard')->with(['todos' => $todos]);
}
public function byUserId(Request $request)
{
$todos = Todo::where('user_id', Auth::user()->id)->get();
Log::info('User is accessing all his todos', ['user' => Auth::user()->id]);
return view('dashboard')->with(['todos' => $todos]);
}
public function show(Request $request, $id)
{
$todo = Todo::find($id);
Log::info('User is accessing a single todo', ['user' => Auth::user()->id, 'todo' => $todo->id]);
return view('show')->with(['todo' => $todo]);
}
public function update(Request $request, $id)
{
# Validations before updating
$todo = Todo::where('user_id', Auth::user()->id)->where('id', $id)->first();
Log::warning('Todo found for updating by user', ['user' => Auth::user()->id, 'todo' => $todo]);
if ($todo) {
$todo->title = $request->title;
$todo->desc = $request->desc;
$todo->status = $request->status == 'on' ? 1 : 0;
if ($todo->save()) {
Log::info('Todo updated by user successfully', ['user' => Auth::user()->id, 'todo' => $todo->id]);
return view('show', ['todo' => $todo]);
}
Log::warning('Todo could not be updated caused by invalid todo data', ['user' => Auth::user()->id, 'todo' => $todo->id, 'data' => $request->except('password')]);
return; // 422
}
Log::error('Todo not found by user', ['user' => Auth::user()->id, 'todo' => $id]);
return; // 401
}
public function store(Request $request)
{
Log::warning('User is trying to create a single todo', ['user' => Auth::user()->id, 'data' => $request->except('password')]);
# Validations before updating
$todo = new Todo;
$todo->title = $request->title;
$todo->desc = $request->desc;
$todo->user_id = Auth::user()->id;
if ($todo->save()) {
Log::info('User create a single todo successfully', ['user' => Auth::user()->id, 'todo' => $todo->id]);
return view('show', ['todo' => $todo]);
}
Log::warning('Todo could not be created caused by invalid todo data', ['user' => Auth::user()->id, 'data' => $request->except('password')]);
return; // 422
}
public function delete(Request $request, $id)
{
Log::warning('User is trying to delete a single todo', ['user' => Auth::user()->id, 'todo' => $id]);
$todo = Todo::where('user_id', Auth::user()->id)->where('id', $id)->first();
if ($todo) {
Log::info('User deleted a single todo successfully', ['user' => Auth::user()->id, 'todo' => $id]);
$todo->delete();
return view('index');
}
Log::error('Todo not found by user for deleting', ['user' => Auth::user()->id, 'todo' => $id]);
return; // 404
}
}
在TodoController的每个方法中,我们添加了具有特定日志级别的Log facade 来定义我们想要发送的错误类型。下面是一个使用
在store方法中记录外观。
public function store(Request $request)
{
Log::warning('User is trying to create a single todo', ['user' => Auth::user()->id, 'data' => $request->except('password')]);
# Validations before updating
$todo = new Todo;
$todo->title = $request->title;
$todo->desc = $request->desc;
$todo->user_id = Auth::user()->id;
if ($todo->save()) {
Log::info('User create a single todo successfully', ['user' => Auth::user()->id, 'todo' => $todo->id]);
return view('show', ['todo' => $todo]);
}
Log::warning('Todo could not be created caused by invalid todo data', ['user' => Auth::user()->id, 'data' => $request->except('password')]);
return; // 422
}
格式化日志消息
假设您对 Laravel 使用的默认LineFormatter感到不舒服,它在提供可读和有用的消息方面做得很好。
在这种情况下,您可以轻松地构建一个定制的格式化程序对象来适应您的用例,并在整个应用程序中使用它。
官方的 Monolog 文档给出了一个完整的可用格式化程序列表,并且可以很容易地创建一个自定义的。
在 Laravel 中,您可以通过将自定义格式化程序添加到位于 config/logging.php 的配置文件中的列表中,轻松设置任何驱动程序来使用您的自定义格式化程序:
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
'days' => 14,
'formatter' => MonologFormatterHtmlFormatter::class,
'formatter_with' => [
'dateFormat' => 'Y-m-d',
]
],
上面的例子使用daily通道配置中的formatter和formatter_with键将自定义的MonologFormatterHtmlFormatter添加到daily驱动程序中,以改变日期的格式。
将日志发送到不同的通道
在 Monolog 的帮助下,Laravel 可以同时向不同的通道和多个通道发送日志。
让我们按照这些简单的步骤演示如何将日志发送到我们的 Slack 通道。将默认日志频道改为 Slack,并在您的中添加 Slack Webhook URL。env 文件。
LOG_CHANNEL=slack
LOG_SLACK_WEBBHOOK_URL= Slack_webhook_url_here
接下来,通过使用如下所示的Log外观在应用程序中记录一条消息来测试您的配置:
Log::debug("The API instance is on fire caused by:", ['user' => 1])
您可以打开 Slack 通道来检查在生成 Webhook URL 时指定的所需通道中打印的错误。
摘要
日志记录与应用程序的任何其他因素一样重要,甚至更重要。这就是为什么十二要素应用程序宣言建议它是任何现代应用程序最关键的关注点之一。
通过有效的日志记录,您可以轻松地读取、查看和可视化生产就绪应用程序中发生的错误和缺陷。为此,从项目一开始就在应用程序中实现结构化日志记录是非常重要的。
在本文中,我们探讨了 Laravel 日志记录,以及为什么您应该在下一个项目中使用它。我们详细讨论了结构化日志记录和集中式日志记录。此外,我们学习了如何通过构建一个 Todo 应用程序来实现 Laravel 日志记录。
你打算如何实现登录你的下一个应用程序?请在评论区告诉我们。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
优化 Laravel 性能的 17 种方法
您是否正在寻找成功的方法来提高 Laravel 的性能,同时处理您的项目?你来对地方了!
Laravel 是一个流行的开源 PHP 框架,以其健壮的安全性和简单而复杂的编码架构而闻名。对于构建能够增加收入和推动业务发展的尖端 web 应用程序来说,这是一个很好的选择。
尽管如此,如果没有使用正确的优化技术,Laravel 的性能会变得很慢。
幸运的是,有很多方法可以最大化 Laravel 的性能。我们总结了一系列最有效的优化技巧,您可以遵循。
为什么 Laravel 性能优化如此重要?
开发人员在发布之前必须非常关注每一个 Laravel 应用程序的性能,以确保其成功。这是一个 Laravel 开发者应该具备的几个品质之一。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
通过代码调整和命令来优化 Laravel 的性能可以帮助实现这一点,并且也可以对你的应用程序的效率产生重大影响。
Laravel 慢吗?
Laravel 是一个快速的框架,具有大量的特性和功能(例如 Memcache、数据库支持、Redis 等)。)来帮助提高性能。Laravel 还让软件专业人员用相对较少的努力就能产生健壮的代码,以满足他们或大或小的项目目标。
由于数据是以键值对的形式存储在服务器的 RAM 中,用户可以随心所欲地缓存,以快速流畅的方式维护他们的应用或网站。基于 Google Trend,Laravel 是目前 PHP 最受欢迎的后端工具。

Laravel’s popularity on Google (Image Source: Google Trend)
最近发布的 Laravel 9 提供了新的性能改进。例如,它有最低的 PHP 规范,需要 Symphony 6.0,而在 PHP 8.1 上的运行速度要快 20.65%。对路线:列表命令的新设计现在减少了复杂命令的混乱视图。Laravel 9 还包括一个更高效的查询构建器界面,以及更多的特性。
然而,一些因素导致了较慢的 Laravel 性能。许多开发人员都有糟糕的习惯,比如上传大量沉重的图像,使用旧的 PHP 版本,编译大量不需要的数据,或者忘记从他们的项目中删除不必要的文件。
Laravel 复杂的 MVC PHP 架构和相关的库提供了安全性、性能和可用性的完美结合。这就是为什么学习一些 Laravel 优化技巧来实现更高的性能是一个很好的经验法则。
网站速度很重要
第一印象对任何品牌形象都是持久的。网站速度是你给网站访问者的第一印象。你知道吗?大约有 50%的在线客户会放弃那些加载时间超过三秒的网站。

Website Speed (Image Source: Cuso Magazine)
网站速度(又名网站性能)是指浏览器从特定网站加载完全正常运行的网页所需的时间。因此,它对用户体验(UX)和转化率有直接影响。
网站表现也会影响你在搜索引擎上的搜索引擎优化排名。如果多个网站提供你的访问者所寻找的信息,速度更快的网页会首先出现。如果你的网站运行缓慢,它就不太可能在谷歌搜索结果中排名靠前。
因此,你应该花些时间应用有效的网站性能优化解决方案。
Laravel 性能优化的优势
虽然您可能已经设计了一个很棒的 Laravel 应用程序,但是总有改进的空间来达到完美。提高您的 Laravel 性能有许多好处:
-
促进业务增长:【Laravel 性能的提高意味着网站或应用程序更加高效。因此,你接触到更多观众的机会增加了。
-
更流畅的开发环境:下面列出的 Laravel 的性能优化技巧可以帮助开发者节省更多的编码时间,更快地执行任务,消耗更少的资源。
-
更好地处理流量:学习如何巧妙地使用 Laravel 队列系统有助于你的网站在增长和获取大量流量时管理请求数量。
如何衡量 Laravel 的绩效
你已经投入了大量的时间和精力来让你时髦的网络应用程序工作,但是如果它很慢,没有人会使用它,你就会像一头头痛的熊。这就是 Laravel 性能测试的用武之地。
你可以使用各种工具对你的宝贝作品进行性能测试。让我们来看看其中的三个。
1.黑火. io

Blackfire.io (Source: Blackfire.io)
Blackfire.io 是一个直观的 web 应用程序分析器,它可以识别基本路径,因此您可以专注于 PHP 应用程序的重要领域。
它包括多种性能监控功能,并显示内存使用、CPU 时间以及 I/o。black fire . io 还允许您对函数调用和路径进行排序,以查看您的 Laravel 应用程序如何工作。
2.拉勒维尔黄昏

Laravel Dusk (Source: ELSNER)
Laravel Dusk 允许您测试您的应用程序,并从用户的角度检查它是如何工作的。你不需要安装硒或 JDK 来使用黄昏,因为它默认包括 Chromedriver。
有了像 Dusk 这样对开发人员友好的 API,您可以自动进行浏览器测试,而不需要 ChromeDriver 和 PHP WebDriver 分别要求的严格过程。
此外,Dusk 存储了失败测试的屏幕截图和浏览器控制台输出,以便您能够找出任何错误。
3.LoadForge

LoadForge (Source: LoadForge)
LoadForge 专为 Laravel 定制,它会自动扫描您的网站,识别问题,并为每个页面提供全面的图表和性能统计。
在 Chrome 中,LoadForge 允许您捕获浏览器动作,然后将它们转换成 LoadForge 测试。这样,您将能够通过模拟他们登录、浏览您的网站,甚至下订单来创建真实的用户体验。
如何优化 Laravel 性能(17 种方法)
在这一部分,我们将仔细梳理一些最佳的想法和策略,帮助你提高你的 Laravel 表现。
1.路由缓存
路线缓存是一个非常好的特性,特别是对于那些有大量配置和路线分布在代码中的应用程序。它是打包在一个命令中的一组路线,有助于减少手动绘制路线的繁琐任务。因此,你网站的页面加载速度会快很多。
路由缓存允许 Laravel 定期从预编译的缓存中检索路由,而不必为每个新用户从头开始。
使用此命令缓存所需的路由数据:
php artisan route:cache
请记住,当用户离开您的站点时,缓存就会过期。每次对您的网站进行结构更改(例如,路由文件和配置)后,运行路由缓存命令也很重要,因为之后所做的任何修改都不会生效。
如果要清除路由缓存,请运行以下命令:
php artisan route:clear
2.优化作曲家
Laravel 使用一个名为 Composer 的独立工具来管理不同的依赖项。当您最初安装 Composer 时,默认情况下它会将开发依赖项加载到您的系统中。
这些依赖对于开发网站很有用。但是一旦你的站点完全运行了,它们就不再需要了,事实上,它们只会降低速度。
当利用 Composer 安装软件包时,使用下面的--no-dev和-o参数来删除开发依赖项:
composer install --prefer-dist --no-dev -o
此命令允许 Composer 创建一个目录来优化自动加载器并提高性能。它只是请求检索和打包正式发行版,没有开发依赖性。
注意不要消除任何运行时依赖。这可能会危及您的网站的性能,甚至导致它崩溃。
3.减少自动加载的服务
Laravel 的目标是让开发过程尽可能轻松。例如,当您启动 Laravel 时,它会自动加载在 config/app.php 文件中列出的大量服务提供者,以帮助您快速启动项目。
虽然这是 Laravel 的一个有益步骤,但是您不需要使用所有这些服务来构建应用程序。
以 REST API 为例。您不需要查看服务提供商或会话服务提供商等服务。此外,许多开发人员不遵循默认的框架设置。您可以简单地禁用您不需要的服务(如分页服务提供程序、翻译服务提供程序、身份验证服务提供程序等)。
通过将相同的原理应用于其他应用程序,您将能够提高 Laravel 应用程序的速度。只要确保你没有删除任何重要的服务,并在你放下锤子之前仔细检查一切。
4.有效使用 Artisan 命令和缓存
Artisan 是 Laravel 附带的一个流行的命令行工具。它使得开发人员可以很容易地自动执行重复性的复杂任务。网站创建者也可以用它来进行测试和生成命令。
巧妙地使用 Artisan 命令可以提高你的应用程序性能。下面,我们列出了几个你可以利用的最好的缓存命令。
配置缓存
缓存配置是提高速度的一个很好的命令。它将应用程序的所有配置值编译到一个文件中,以便框架可以更快地加载。你只需要跑:
php artisan config:cache
请注意,您不应该在本地开发期间执行配置缓存命令。这是因为在应用程序的开发过程中,配置设置可能需要经常更改。
要清除配置缓存,请运行以下命令:
php artisan config:clear
视图缓存
视图缓存是包含缓存的应用程序的另一个方面。视图缓存存储生成的刀片模板,以提高项目的速度。您可以使用下面的 artisan 命令手动编译所有视图并优化性能:
php artisan view:cache
当你上传新代码时,记得清空缓存;否则,Laravel 将使用您的旧视图,您将花费大量时间尝试解决这个问题。运行以下命令清除视图缓存:
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
php artisan view:clear
应用程序缓存
这是拉弗尔的主要贮藏处。它会保存您在应用程序中手动缓存的所有数据。使用 Laravel 的缓存是一种聪明的方法,可以加速经常访问的数据并优化 Laravel 的性能。如果您使用标记或多个缓存存储,则只能刷新缓存中的某些元素。
下面是清除 Laravel 缓存的 artisan 命令:
php artisan cache:clear
请记住,该命令不会删除位于/bootstrap/cache/文件夹中的任何路由、配置或视图缓存。
5.减少包装使用
作为一个拥有众多社区的开源框架,在 Laravel 中看到越来越多的包发布或现有包中的新版本是很自然的。你可以自由地在你的应用程序中直接使用它们和它们的特性。
您必须将这些包包含在composer.json文件中。Laravel 将随后安装它们及其依赖项。
然而,在向任何应用程序添加新包之前,有几个因素需要考虑。例如,它们并非都是为同一目的而设计的。还创建了一些包来执行广泛的功能。
当您包含具有大量依赖项的包时,应用程序的大小会增长,其性能最终会受到影响。这就是为什么在添加任何包之前仔细检查依赖关系是非常重要的。
6.升级至 PHP 的最新版本
就像任何其他代码或软件程序一样,最好是将你的 PHP 版本升级到最新版本。
使用最新 PHP 版本的主要原因是安全性。两年来,每个 PHP 版本都会收到安全补丁和错误修复。如果您继续使用不再维护的早期版本,您的系统可能会受到危害。
许多开发人员可能也没有意识到,PHP 版本越老,其性能就变得越慢。为了提高效率,当前的 PHP 版本具有突出的性能改进,比如更快地执行请求、枚举、纤程和继承缓存。
在 Kinsta,我们使用最新的主要 PHP 版本( PHP 8.1 )用于所有环境,因此用户可以从平台的广泛功能中受益,并优化他们的应用程序,以实现最大的速度和效率。
7.使用队列
将缓慢的任务卸载到队列作业是一种快速最大化 Laravel 应用程序速度的简单技术。
有时候你并不需要 UI 中的信息。在这种情况下,这些任务可以被推迟,稍后由单独的进程在后台运行(例如,发送电子邮件)。这可以显著提高应用程序在线请求的性能。
使用队列发送邮件的示例(图片来源: GeekFlare
Laravel 支持各种队列驱动程序,如 IronMQ、Redis、亚马逊 SQS 和 Beanstalkd。它还包括一个内置的队列工作器,可以使用以下命令执行该工作器:
php artisan queue:work
您可以使用以下方法将新作业添加到队列中:
Queue::push('SendEmail', array('message' => $message));
如果您想推迟一个队列作业的执行,请使用下面的方法。例如,假设您想要安排一个在客户创建帐户 10 分钟后向其发送电子邮件的作业:
$date = Carbon::now()->addMinutes(10);
Queue::later($date, '[[email protected]](/cdn-cgi/l/email-protection)', array('message' => $message));
8.使用部署工具调用所有命令
好吧,我们意识到这不是 Laravel 的纯性能技巧,但是对于开发人员来说,这是一种非常好的节省时间的技术,对于提高生产率同样重要。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
Deployer 是一个基于 PHP 的部署工具,允许您将代码部署到不同的服务器上。它包括流行框架的脚本,比如 Laravel、Symfony、Zend、Magento、CakePHP 等等。
如果您以前没有使用 Composer 来管理项目依赖项,那么您将很快熟悉 Deployer。使用此工具可以自动执行所有机器部署操作,例如启动服务器、克隆到远程服务器以及监控远程主机。
Deployer 提供了在 Laravel 应用程序中执行迁移、种子和优化功能的设置,只需一个命令:
php deployer.phar deploy production
9.将 Lumen 用于小型项目
有时候,开发一个小应用程序(例如移动或角度应用程序)不需要使用像 Laravel 这样的全栈框架。在这种情况下,请考虑使用 Lumen。
Lumen 是由 Laravel 的同一个创建者开发的微框架。就像一个更轻版本的 Laravel 一样,Lumen 的核心是微服务的速度和性能。在构建 web 应用程序时,它需要最少的设置和替代路由参数,从而加快开发过程。
例如,Lumen 每秒可以处理 100 个请求。你也可以集成第三方的工具或包来获得新的特性。而且 Lumen 支持所有平台,允许你升级到 Laravel。
10.利用 JIT 编译器
PHP 是一种服务器端语言,需要解释器将代码翻译成计算机可以理解的字节码。
这个过程需要大量的时间,消耗大量的资源。这就是为什么程序员选择像 Zend engine 这样的脚本引擎来执行 C 子程序,每次执行应用程序时都必须重复这些子程序,这会降低应用程序的速度。
为了提高效率,开发人员使用实时(JIT)编译器重复这个过程一次。由脸书发明并广泛使用的 HHVM 是 Laravel 的首选 JIT 编译器。Etsy、维基百科和许多其他网站也使用它。
11.利用急切装载
为了愉快地与数据库交互,Laravel 提供了一个奇妙的对象关系映射器(ORM ),名为口才。它使您能够以一种简单的格式关联表和处理 PHP 中的所有 CRUD 函数。
当您从数据库中检索模型,然后对它们的关系执行任何类型的处理时,关系数据是“延迟加载的”。这意味着在您访问关系之前不会加载数据。
您将运行 N+1 个查询来查找延迟加载的响应,如下例所示:
$books = AppBook::all();
foreach ($books as $book) {
echo $book->author->name;
}
为了优化 Laravel 的性能并解决 N+1 查询问题,Laravel 可以“快速加载”数据,如下所示:
$books = AppBook::with('author')->get();
foreach ($books as $book) {
echo $book->author->name;
}
12.压缩图像
图像在网站设计中起着重要的作用。它们对于提升用户体验(UX)和提升搜索排名至关重要。
一个网站的平均加载时间是两秒。沉重的图像会降低网站的加载速度。如果你的网站运行缓慢,很有可能会失去很多访问者。
图像压缩在不牺牲图像质量的情况下最小化原始图像的尺寸,帮助优化网站速度。出于这个原因,Laravel 提供了压缩照片的简洁选项,如 TinyPNG、reSmush.it 或 ImageMin。
13.使用 CDN
使用内容交付网络(CDN) 可以真正优化 Laravel 性能。通过从 CDN 服务器加载静态内容,而不是直接从托管文件的机器上加载,数据可以更快地到达您的受众。
换句话说,它将你网站的最新版本缓存到全球云服务器网络中。因此,即使你的访问者在地理上远离你的位置,他们仍然能够快速访问你的网站。
Kinsta CDN 是由 Cloudflare 驱动的,免费提供。它允许你的网站的缓存文件从你的主域而不是二级 CDN 域传递,提升你的 SEO 排名。
Kinsta CDN 还可以帮助您删除 JavaScript (JS)和 CSS 文件中不需要的组件。这极大地减少了网站页面加载的时间,并减少了带宽消耗。
14.最小化 JS 和 CSS 代码
在继续资产捆绑过程之前,通过缩小您的 JavaScript 和 CSS 文件来提高您的 Laravel 性能。
这个缩小步骤删除了应用程序中任何不必要的代码,比如空格、注释和使用缩写名称重命名变量。如有必要,您可以调整图像大小来创建缩略图。
因此,您将提高 UX,同时减少 HTTP 调用。
15.使用资产捆绑
有几个工具可以用来将 Javascript 和 CSS 等文件压缩打包成一个文件,比如 Laravel Mix 和 Laravel Packer。
默认情况下,所有 Laravel 应用程序都包含 Laravel Mix。这是一个用户友好的 API,使用一系列常见的 JavaScript 和 CSS 预处理程序为 PHP 应用程序创建 Webpack 构建。
假设您的应用程序文件需要某种样式格式的集合,您可以输入如下内容:
mix.styles([
'public/css/vendor/normalize.css',
'public/css/styles.css'
], 'public/css/all.css');
现在,Laravel Mix 将自动从normalize.css和style.css文件生成一个all.css文件。因此,您可以将它们合并到一个 all.css 文件中,而不是分别获取每个样式表。
Laravel Packer 是一个命令行工具,可以通过 Composer 安装。它让你减少和捆绑你的 JS 和 CSS 代码。然而,它比 Laravel Mix 更难使用。
尽管这个技巧对于提升 Laravel 性能很有帮助,但是合并大量文件会使它变得很大,最终会产生相反的效果。要解决这个问题,请运行以下命令,使用 Laravel Mix 缩小文件:
npm run prod
16.限制包含的库
Laravel 让您可以自由添加任意数量的库。虽然这是一个很棒的特性,但是添加大量的库会给应用程序的性能带来很大的压力。它还会影响整个用户体验。
因此,扫描代码中当前使用的所有库数据是至关重要的。您可以在config/app.php file中找到这些库。在检查库的时候,删除那些你知道对你不再有用的库。
查看composer.json中不需要的依赖项也是一个好主意。
17.考虑使用新遗迹
New Relic 是一个应用性能管理(APM)工具,由开发者集成到他们的 Laravel 应用中。它用于分析和监控反映其性能的统计数据,以优化效率并避免实时中断。
New Relic 可以帮助您评估您的 Apdex 分数,并衡量您的应用程序与市场上的竞争对手相比如何。它还使您能够根据您的标准创建警报策略。
如果不想注册第三方服务,可以使用 Kinsta 的 APM 工具。它可以帮助你找到你的 WP 网站上的 PHP 性能瓶颈,而不需要额外付费。
看看这些技巧,最大限度地提高你的工作表现&准备好迎接你的下一个项目💪 点击推文
摘要
Laravel 是一个快速成长的 PHP 框架,有大量的教程可供各类用户学习 Laravel,无论他们的知识水平如何。
谈到数字世界中的用户体验,性能是建立强大在线形象的关键因素。毫无疑问,组织会投入更多的时间和资源来提供高质量的 UX。
如果您是一名 Laravel 开发人员,您可以确信,通过使用上面概述的方法,您将会注意到性能的显著提高,并且能够保持应用程序平稳运行。
你还用过哪些方法来提高 Laravel 应用程序的速度?请在下面的评论区告诉我们。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
掌握拉勒维尔路线
到了后端,开发者最终遇到的是路由。路由可以被认为是后端的主干,因为服务器接收到的每个请求都通过将请求映射到控制器或动作的路由列表被重定向到控制器。
Laravel 为我们隐藏了许多实现细节,并附带了许多语法糖来帮助新的和有经验的开发者开发他们的 web 应用程序。
让我们仔细看看如何管理 Laravel 的路线。
Laravel 中的后端路由和跨站点脚本
在服务器上,同时存在公共路由和私有路由。由于跨站点脚本(XSS)的可能性,公共路由可能是一个令人担忧的原因,这是一种类型的注入攻击,可能会使您和您的用户容易受到恶意参与者的攻击。
问题是,用户可以从不需要会话令牌的路由重定向到需要会话令牌的路由,但他们仍然可以在没有令牌的情况下访问。
Dive into the 'backbone of the backend' in this guide to Lavavel Routing 🚀Click to Tweet
解决这个问题的最简单的方法是实施一个新的 HTTP 报头,在路由中添加“referrer”来缓解这种情况:
'main' => [
'path' => '/main',
'referrer' => 'required,refresh-empty',
'target' => Controller\DashboardController::class . '::mainAction'
]
Laravel 基本路由
在 Laravel 中,路由允许用户将适当的请求路由到所需的控制器。最基本的 Laravel 路由接受一个统一的资产标识符(您的路由路径)和一个闭包,这个闭包可以是函数也可以是类。
在 Laravel 中,路径是在web.php和api.php文件中创建的。默认情况下,Laravel 有两条路径:一条用于 WEB,一条用于 API。
这些路由位于 routes/ 文件夹中,但是它们被加载到Providers/routeserviceprovider . PHP中。
Default state of Laravel’s route service provider.
代替这样做,我们可以直接在RouteServiceProvider.php中加载路线,完全跳过路线/ 文件夹。
Loading Laravel routes directly in the provider.
重新寄送
当我们定义一个路由时,我们通常希望重定向访问它的用户,这样做的原因有很多。可能是因为这是一个不推荐使用的路线,我们改变了后端或服务器,也可能是因为我们想安装双因素身份验证(2FA) 等等。
Laravel 有一个简单的方法来做到这一点。由于框架的简单性,我们可以在 Route facade 上使用 redirect 方法,它接受入口路由和要重定向到的路由。
可选地,我们可以给出重定向的状态代码作为第三个参数。除了总是返回一个 301 状态码之外,permanentRedirect方法与redirect方法做的一样:
// Simple redirect
Route::redirect("/class", "/myClass");
// Redirect with custom status
Route::redirect("/home", "/office", 305);
// Route redirect with 301 status code
Route::permanentRedirect("/home", "office");
在重定向路由中,我们被禁止使用“目的地”和“状态”关键字作为参数,因为它们是 Laravel 保留的。
// Illegal to use
Route::redirect("/home", "/office/{status}");
视图
视图是。blade.php我们用来渲染 Laravel 应用程序前端的文件。它使用刀片模板引擎,并且是仅使用 Laravel 构建全栈应用程序的默认方式。
如果我们希望我们的路由返回一个视图,我们可以简单地在路由外观上使用 view 方法。它接受要传递给视图的路由参数、视图名称和可选的值数组。
// When the user accesses my-domain.com/homepage
// the homepage.blade.php file will be rendered
Route::view("/homepage", "homepage");
让我们假设我们的视图想要通过传递一个带有该参数的可选数组来说“Hello,{name}”。我们可以用下面的代码做到这一点(如果视图中需要缺少的参数,请求将失败并抛出一个错误):
Route::view('/homepage', 'homepage', ['name' => "Kinsta"]);
路线列表
随着应用程序规模的增长,需要路由的请求数量也会增加。大量的信息会带来巨大的混乱。
这就是artisan route:list command可以帮助我们的地方。它概述了应用程序中定义的所有路由、它们的中间件和控制器。
php artisan route:list
它将显示一个没有中间件的所有路线的列表。为此,我们必须使用-v标志:
`php artisan route:list -v`
在您可能使用域驱动设计的情况下,您的路由在其路径中具有特定的名称,您可以像这样利用此命令的过滤功能:
php artisan route:list –path=api/account
这将只显示以 api/account 开始的路线。
另一方面,我们可以通过使用–except-vendor或–only-vendor选项来指示 Laravel 排除或包含第三方定义的路由。
路线参数
有时,您可能需要捕捉 URI 的路段,如用户 ID 或令牌。我们可以通过定义一个路由参数来做到这一点,这个参数总是用花括号({})括起来,并且应该只包含字母字符。
如果我们的路由在它们的回调中有依赖关系,Laravel 服务容器会自动注入它们:
use Illuminate\Http\Request;
use Controllers/DashboardController;
Route::post('/dashboard/{id}, function (Request $request, string $id) {
return 'User:' . $id;
}
Route::get('/dashboard/{id}, DashboardController.php);
必需的参数
Laravel 的必需参数是在我们打电话时不允许跳过的路由中的参数。否则,将会引发一个错误:
Route::post("/gdpr/{userId}", GetGdprDataController.php");
现在,在GetGdprDataController.php中,我们将可以直接访问 $userId 参数。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
public function __invoke(int $userId) {
// Use the userId that we received…
}
路由可以接受任意数量的参数。它们根据列出的顺序被注入到路由回调/控制器中:
// api.php
Route::post('/gdpr/{userId}/{userName}/{userAge}', GetGdprDataController.php);
// GetGdprDataController.php
public function __invoke(int $userId, string $userName, int $userAge) {
// Use the parameters…
}
可选参数
如果我们想在一条路线上做一些事情,而这条路线上只有一个参数,而没有其他任何东西,并且不影响整个应用程序,我们可以添加一个可选的参数。这些可选参数由附加在它们后面的?表示:
Route::get('/user/{age?}', function (int $age = null) {
if (!$age) Log::info("User doesn't have age set");
else Log::info("User's age is " . $age);
}
Route::get('/user/{name?}', function (int $name = "John Doe") {
Log::info("User's name is " . $name);
}
路由通配符
Laravel 为我们提供了一种过滤可选或必需参数的方法。
假设我们需要一个用户 ID 字符串。我们可以使用where方法在路由级别验证它。
where方法接受参数名和将应用于验证的正则表达式规则。默认情况下,它接受第一个参数,但是如果我们有很多参数,我们可以传递一个数组,将参数的名称作为键,将规则作为值,Laravel 将为我们解析所有参数:
Route::get('/user/{age}', function (int $age) {
//
}->where('age', '[0-9]+');
Route::get('/user/{age}', function (int $age) {
//
}->where('[0-9]+');
Route::get('/user/{age}/{name}', function (int $age, string $name) {
//
}->where(['age' => '[0-9]+', 'name' => '[a-z][A-z]+');
我们可以更进一步,通过在Route外观上使用pattern方法,在应用程序中的所有路线上应用验证:
Route::pattern('id', '[0-9]+');
这将用这个正则表达式验证每个id参数。一旦我们定义了它,它将自动应用于使用该参数名称的所有路由。
正如我们所看到的,Laravel 在路径中使用了/字符作为分隔符。如果我们想在路径中使用它,我们必须使用一个where正则表达式显式地允许它成为占位符的一部分。
Route::get('/find/{query}', function ($query) {
//
})->where('query', , '.*');
唯一的缺点是它只在最后一个路由段受支持。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
命名路线
顾名思义,我们可以命名路由,这使得生成 URL或重定向特定路由变得非常方便。
如何创建命名路由
链接在Route外观上的name方法提供了一种创建命名路由的简单方法。每条路线的名称应该是唯一的:
Route::get('/', function () {
})->name("homepage");
路由组
路由组允许您跨大量路由共享路由属性,如中间件,而无需在每条路由上重新定义它。
中间件
首先通过使用group方法,为我们拥有的所有路由分配一个中间件允许我们将它们组合在一个组中。需要考虑的一点是,中间件是按照它们应用于组的顺序执行的:
Route:middleware(['AuthMiddleware', 'SessionMiddleware'])->group(function () {
Route::get('/', function() {} );
Route::post('/upload-picture', function () {} );
});
控制器
当一个组使用同一个控制器时,我们可以使用controller方法为该组内的所有路径定义公共控制器。现在我们必须指定路由将调用的方法。
Route::controller(UserController::class)->group(function () {
Route::get('/orders/{userId}', 'getOrders');
Route::post('/order/{id}', 'postOrder');
});
子域路由
子域名是添加到网站域名开头的一段附加信息。这允许网站从网站的其余部分分离和组织其内容以实现特定功能,如在线商店、博客、演示等。
我们的路由可用于处理子域路由。我们可以捕获域和子域的一部分,以便在我们的控制器和路由中使用。借助于Route facade 上的domain方法,我们可以将我们的路由分组到一个域中:
Route::domain('{store}.enterprise.com')->group(function() {
Route::get('order/{id}', function (Account $account, string $id) {
// Your Code
}
});
前缀和姓名前缀
每当我们有一组路由时,我们可以利用 Laravel 提供的额外实用程序,比如Route门面上的prefix和name,而不是逐个修改它们。
prefix方法可用于给组中的每条路由添加给定 URI 的前缀,而name方法可用于给每条路由添加给定字符串的前缀。
这允许我们创建新的东西,如管理路由,而不需要修改每个名称或前缀来识别它们:
Route::name('admin.")->group(function() {
Route::prefix("admin")->group(function() {
Route::get('/get')->name('get');
Route::put('/put')->name(put');
Route::post('/post')->name('post');
});
});
现在这些航线的 URIs 将会是admin/get、admin/put、admin/post,名字为admin.get、admin.put、admin.post。
路由缓存
当将应用程序部署到生产服务器时,一个优秀的 Laravel 开发者会利用 Laravel 的路由缓存。
什么是路由缓存?
路由缓存减少了注册所有应用程序路由所需的时间。
运行php artisan route:cache生成Illuminate/Routing/RouteCollection的一个实例,经过编码后,序列化的输出被写入bootstrap/cache.routes.php。
现在任何其他请求将加载这个缓存文件,如果它存在的话。因此,我们的应用程序不再需要解析 route 文件中的条目并将其转换成Illuminate/Routing/RouteCollection中的Illuminate/Routing/Route对象。
为什么使用路径缓存很重要
如果不使用 Laravel 提供的路线缓存功能,你的应用程序可能会运行得更慢,这反过来会降低销售额、用户保留率和对你品牌的信任度。
根据你项目的规模和路线的数量,运行一个简单的路线缓存命令可以使你的应用程序加速 130%到 500%——几乎不费吹灰之力就能获得巨大的收益。
摘要
路由是后端开发的支柱。Laravel 框架在这方面表现出色,它提供了一种详细的定义和管理路由的方式。 【得心应手】在此彻底指导🛠 点击推文
开发确实可以为每个人所用,并帮助加速一个应用程序,仅仅因为它是在 Laravel 中构建的。
关于 Laravel 路线,你还遇到过哪些技巧和提示?请在评论区告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
20 篇最佳 Laravel 教程(2022 年免费和付费资源)
Laravel 多年来一直是 PHP 应用程序开发的明星,这是有充分理由的。庞大的生态系统、活跃的社区、强劲的就业市场、成功的初创公司——它拥有一切让采用新技术变得值得的东西。
如果你想学 Laravel,你不必走得更远。通过浏览本指南,您可以找到最适合您的 Laravel 教程,与您的知识水平和学习风格相匹配。
准备好了吗?我们来深入挖掘一下!
为什么要学 Laravel
你想学习 Laravel 的原因有很多,所以我们从其中最重要的开始。另外,在详细研究最好的 Laravel 教程之前,我们还将浏览一些关于如何有效学习框架的技巧,包括每个教程的优点、缺点和用例。
1.迅速发展
Laravel 是一个用于 web 应用开发的开源 PHP 框架,基于 MVC(模型-视图-控制器)架构模式。其富于表现力和简单明了的语法加快了开发速度,并产生了干净、可维护的代码库和可伸缩的应用程序。
2.高人气
Laravel 的源代码存放在 GitHub 上,这是最受欢迎的PHP 库,拥有超过 60,000 颗星星,并且还在增加。网上还有许多 Laravel 教程、视频、截屏和资源,可以帮助您学习框架并跟上新的发展。
3.巨大的生态系统
由于其受欢迎程度,Laravel 拥有一个庞大的官方和第三方软件包生态系统,您可以将其添加到自己的应用程序中。官方软件包包括服务器管理工具和平台、开发者环境、监控和测试工具、管理面板等等(见 Laravel 主页的“生态系统”菜单下)。
如果你想添加尚不存在的功能,你也可以开发自己的 Laravel 包。
4.活跃社区
在 Laravel 周围有一个巨大的社区,你可以在 Laravel.io 、 Laracasts 讨论、 LaraChat 、 Discord 、 Reddit 和其他很酷的地方找到。Laravel 还有一个名为 Laracon 的官方会议,每年在三大洲举行(美洲、欧洲、澳大利亚)。
5.强劲的就业市场
Laravel 开发是一项非常受欢迎的技能,工作前景非常好。它有一个名为 Larajobs 的官方职位板,其中最常见的职位是“Laravel 开发人员”、“后端 Laravel 开发人员”、“T2”全栈 PHP 开发人员(Laravel 在前端经常与 Vue.js 成对出现),以及“高栈开发人员”(高栈代表 Tailwind CSS 、 Alpine.js 、Laravel 和 Livewire )。
除了 Larajobs,你可以在 Monster,Indeed 和 LinkedIn 等其他求职网站上找到大量的 Laravel 工作,在 RemoteOK 、We Work remote等地方也有远程 Laravel 工作。
6.充满希望的商机
如果你不想为别人工作,而是建立自己的事业,Laravel 也可以成为你的绝佳解决方案。已经有许多成功的企业建立在 Laravel 之上,比如 OctoberCMS 、 Mailcoach 、 Monica CRM 、 Invoice Ninja 和 CodeCourse (参见本文下面的付费 Laravel 教程),仅举几例。
以 Laravel 为基础,使用最佳实践和高性能 PHP 托管,你的应用将毫无问题地在生产中扩展。
如何学习 Laravel
要开始学习 Laravel 开发,您需要一些已有的知识。
先验知识
你需要安全地使用 PHP,尤其是面向对象的 PHP。知道如何使用命令行和编辑器包管理器也很重要——这两个主题通常在初级 PHP 教程中有所涉及。
一些关于 HTML 和关系数据库管理系统的知识(Laravel 支持其中的四种: MySQL ,PostgreSQL,SQLite 和 SQL Server )也可以帮助轻松入门。
学习材料
学习像 Laravel 这样的 PHP 框架与学习像 PHP 这样的编程语言有些不同。在这里,您将从一开始就做更多的实践项目和更少(或零)的编程练习,因为这是大多数 Laravel 教程的结构。
构建真实世界的应用程序也意味着你会经常使用 Laravel 作为堆栈的一部分。例如,许多 Laravel 教程将它与 Vue 前端一起使用,这意味着您还需要学习 Vue.js(通常也包含在同一教程中)来完成项目。
也很难找到完全初学者的教程,大多数教程都是视频格式的。几乎没有关于 Laravel 的书,主要是因为变化如此之快,以至于当一本书出版时,框架已经领先两个版本了。
Laravel 版本
挑选 Laravel 教程时,最重要的事情之一是关注它所涵盖的 Laravel 版本。您需要熟悉以下 Laravel 版本控制规则:
- 从版本 6 开始,Laravel 及其官方包遵循语义版本化 (
major.minor.patch),例如 8。*是一个主要版本。 - 在 Laravel 6 之前,框架使用了
paradigm.major.minor约定,例如 5.8。*也是一个主要版本。 - 每六个月(二月和八月)有一个主要的发布。
- 并且,每两年有一个 LTS(长期支持)版本。
- 对于一般版本,错误修复提供 6 个月,安全版本提供 1 年。
- 对于 LTS 版本,错误修复提供 2 年,安全版本提供 3 年。
- 因此,Laravel 随后的主要版本编号为 5.5。* (LTS),5.6。, 5.7., 5.8., 6. (LTS),7。, 8.
- 也有小版本和补丁,但它们不包含任何突破性的变化。
由于每年有两个主要版本,教程很难跟上。大多数 Laravel 教程,你会发现在任何给定的日期将 1-3 个版本相比,实际发布。这不是一个大问题,除非该框架经历了一次完全重写,上次发生是在 2013 年 Laravel 4 发布时。
即使建议使用最新的教程,如果您不得不回到两三个版本,也不要惊慌,特别是如果它是一篇展示如何构建您想要学习的应用程序的实用文章。
你可能会发现不同版本之间的一些不一致,但这些通常会被作者或其他学习者在讨论部分记录下来。浏览每个新版本的发行说明也是一个好主意,看看有什么变化,因为它可以帮助你知道需要注意什么。
学习预算
学习 Laravel 一点也不贵——你甚至可以免费学习。本指南包括免费和付费的 Laravel 教程,但即使是付费的也不是很贵;你可以以每月 15-30 美元的价格订阅一个高级教程网站。
即使你不想在学习 Laravel 上花任何钱,浏览付费部分也是值得的,因为一些优质教程网站提供免费试用,偶尔提供免费视频课程和其他免费服务。
信息
Kinsta 允许您为您的产品运行 Laravel,尽管我们的团队没有正式支持它。
6 个最好的免费 Laravel 教程网站
现在,让我们仔细看看最好的 Laravel 教程!
1.官方 Laravel 文档(初级、中级、高级)

Official Laravel Docs
官方的 Laravel 文档是对 Laravel 框架的实际描述,由 Laravel 社区维护,在 GitHub 上也有。它从安装指南开始,提供了所有 Laravel 概念的概述,比如模板、安全性、数据库管理等等。你也可以在这里找到官方的 Laravel 包的文档。
优点:
- 最新的 Laravel 资源
- 信息结构良好,易于搜索
- 老版本的文档也是可用的
- 包括代码示例和最佳实践提示
- 你可以在 GitHub 上提交错误报告
缺点:
- 干巴巴、教科书般的语气和设计
何时选择 Laravel 文档
Laravel 的官方文档对任何知识水平的人来说都是有用的,可以用来检查任何与 Laravel 相关的概念的细节。然而,由于其高信息密度,对于初学者来说,它可能会令人不知所措。
这是熟悉新版本的特性或比较不同版本的最佳地方。
2.拉勒维尔新闻(初级、中级、高级)

Laravel News
Laravel News 是一个包罗万象的 Laravel 教程网站。它有一个以最新的 Laravel 新闻为特色的博客,一个涵盖从初学者到专家级别主题的 Laravel 教程部分,一个两周一次的 Laravel 播客,以及一个每周日早上发送的 Laravel 时事通讯。Laravel News 还展示了流行的 Laravel 包,并附有简要描述和示例代码。
优点:
- 定期更新
- 以不同的方式传递内容(博客、播客、时事通讯等)
- 最佳实践片段
- 关于构建真实世界 Laravel 应用程序/任务/工具的免费教程
- 有用的截图和代码片段
缺点:
- 有些帖子是赞助商的帖子(尽管有明确说明)
- 难以导航(同一教程系列的连续部分没有相互链接)
何时选择 Laravel 新闻
Laravel News 是 Laravel 相关新闻的最佳免费来源。这些教程质量很高,涵盖了许多有趣的东西——但即使你对它们不感兴趣,也值得订阅时事通讯,以了解最新的 Laravel 框架(每个版本也包括一些 Laravel 工作列表)。每两周一次的 Laravel 新闻播客对于任何水平的 Laravel 开发者来说都是一个极好的资源。
3.Tuts Make(中级、高级)

Tuts Make
Tuts Make 是一个流行的教程博客,涵盖了 T2 不同的编程语言和技术,包括 Laravel。这些教程简明扼要,讨论了常见的 Laravel 任务、错误和用例。它们包括多个代码片段,您也可以在自己的项目中使用。
TutsMake 也有一个单独的类别用于面试问答,有着直截了当和深思熟虑的解释。
优点:
- 定期更新
- 基于实践的教程
- 易于浏览的内容
- 冗长但结构良好的代码示例
- 工作面试问答
缺点:
- 教程很难浏览(没有标签或其他分类)
- 到处都有语法错误
何时选择 Tuts 品牌
Tuts Make 绝对不适合新手。要理解这些教程,您至少需要具备 Laravel 的中级知识,因为它们非常基于代码,没有太多的理论讨论。这些教程也互不相关——Tuts Make 是一个博客,而不是一步一步的 Laravel 教程系列。如果你正在找一份 Laravel 的工作,不要错过它的面试问答部分;真的很好。
4.LaraShout(初级、中级、高级)

LaraShout
LaraShout 是一个完全专注于 Laravel 框架的免费教程网站。除了动手操作的 Laravel 教程,它还提供了一些重要理论概念的指南,如中间件、存储、队列和作业等。有些教程被分成系列,这样你可以对每个主题有更深的了解。
目前,LaraShout 有四个系列:集合、设计模式、电子商务应用程序开发和包开发。
优点:
- 易于导航的网站
- 教程从目录开始
- 丰富的内容(高质量的图像、代码示例、警告消息等)
- 基于理论和实践的教程
缺点:
- 有些类别只包含两到三个教程
- 更新频率较低
何时选择 LaraShout
LaraShout 主要推荐给中级和高级学习者,尽管它也有一些初级教程。四个 Laravel 教程系列尤其值得一试——然而,请注意,它们不一定涵盖您需要的所有内容,因为 LaraShout 更像是一个技术博客,而不是一个全面的教育网站。
5.初级(初级,中级)

Learn2torials
Learn2torials 是 Sandip Patel 的一个人项目,提供不同编程语言和框架的免费教程。Laravel 教程部分涵盖了框架的许多重要方面,从安装到备份再到缓存。
它们更侧重于理论而不是实践,但是由于它们包括许多较长的代码示例,它们也可以帮助您解决现实世界中的问题。
优点:
- 配有深思熟虑的解释的精心编写的教程
- 教程采用简单易懂的问答形式
- 注释良好的代码示例
- 许多初级教程
缺点:
- 难以搜索网站(没有分类法)
- 教程不遵循逻辑顺序,从初学者到更高级的
为什么选择学习目录
如果你是一个初学者或者已经知道一些语言的发展,但是你的知识还存在空白,Learn2torials 可以成为你理想的语言资源。它还与官方的 Laravel 文档有许多重叠,因此您可以一起使用这两种资源来巩固您对底层概念的理解。
6.举例说明(中级)

Eloquent by Example
雄辩举例是另一个单人项目,由杰夫·麦德森提供。这是一个免费的 Laravel 教程系列,只关于雄辩的 ORM ,负责在 Laravel 对象和后台运行的关系数据库(MySQL、PostgreSQL、SQLite 或 SQL Server,取决于您的选择)之间传输数据的对象关系映射器。
教程的结构是连续的课程,读起来就像一本关于雄辩的 ORM 的书的章节。
优点:
- 教程写得非常好(几乎像小说一样)
- 易于导航的结构良好的网站
- 丰富的代码示例
- “进一步阅读”部分有资源推荐
缺点:
- 没有介绍性的课程来解释像什么是 ORM 这样的基本概念
- 教程没有出版日期
什么时候选择雄辩的例子
如果你已经有一些 Laravel 知识,但想掌握雄辩的 ORM,这是最好的 Laravel 资源。也就是说,不清楚它最后一次更新是什么时候,但链接指向 Laravel 5.8 文档,所以它可能包含一些过时的信息,并错过了更新的内容。
尽管如此,这是你能找到的最全面的雄辩的指南。
6 个最佳免费 Laravel 教程视频、截屏和播客
1.BitFumes(初级、中级、高级)

BitFumes
BitFumes 是一个教育网站,提供免费和付费的网络开发视频课程。它的免费 Laravel 教程部分包括许多主要针对初学者的高质量视频课程,但你也可以在这里找到一些更高级的内容。
在bit fuses 的 YouTube 频道上也有许多免费的 Laravel 教程,包括一个长达 6.5 小时的课程,涵盖了 Laravel 从非常基础到高级主题的开发,如 Livewire (高栈所需)。
优点:
- 观看免费课程不需要注册
- 视频分为章节和课程
- 进度跟踪功能
- 常用工具配对教程(Laravel 与 DigitalOcean、VueJS、PHPUnit 等。)
- 课程有正确的标签(长度、级别、教程数量、出版日期)
缺点:
- 难以理解的生态系统(网站和 YouTube 上都有免费的 Laravel 课程,还有一门高级课程)
何时选择 BitFumes
BitFumes 的 YouTube 频道在任何情况下都值得浏览,即使你是高级水平。BitFumes 网站上的免费教程涵盖了很多在其他地方很难免费找到的初级主题。它还有一门高级 Laravel 课程,包括条带集成和测试驱动开发等高级主题。
2.Povilas Korop 的 Laravel Business(初级、中级、高级)

Laravel Business
Laravel Business 是一个受欢迎的 YouTube 频道,包括如何使用 Laravel 开展业务的免费视频教程。这是 Povilas Korop 的一个人项目,他也是 Laravel Daily 的作者(见下面的付费部分)。
在他的频道上,他每周都会发布几个 YouTube 视频,讨论诸如 Blade、口才、PHPUnit、SaaS 应用等主题。除了实践教程,Povilas 还做比较,提供职业和商业建议,并在“社区”标签下,每天分享“每日小贴士”。
优点:
- 几乎每天更新
- 非常基于实践的教程
- 较长的视频被分成较小的部分
- 教程视频下的相关链接推荐
- 有时他会在视频回答中回复他的观众
缺点:
- 视频很难搜索
何时选择 Laravel 业务
即使 Laravel Business 主要针对更高级的用户,它也可以成为初学者的一个很好的 Laravel 资源,特别是 Povilas 的商业和职业建议。
如果你已经做了一段时间的 Laravel 开发,并且对你的工作有点厌倦,这个频道可以帮助你重新获得动力,因为它讨论了许多有趣的事情、新特性和你在其他地方找不到的特定用例。
3.拉宁(初级、中级)

Laraning
Laraning 的名字来源于单词“Laravel”和“learning ”,这个名字是真实的,因为它完全致力于 Laravel 学习。它提供免费视频课程,分为“系列”、“专题”和“课程”。
“系列”是关于 Laravel 包和其他主题的松散耦合的视频教程。“功能”仍在开发中,目前只包括一个关于刀片模板引擎的视频教程。“课程”是更长的视频教程系列,例如针对初学者的综合“从 A 到 Z”课程。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
优点:
- 结构良好的课程
- 易于导航的网站
- 实际的、真实的例子
- 全高清视频
- 代码内容可在 GitHub 上获得
缺点:
- 仍在开发中
- 视频没有发布日期
何时选择拉宁
由于 Laraning 网站还没有完全成熟,你会发现到处都有缺失的功能。例如,“登录”按钮仍然不起作用,有些系列只有两个视频片段。然而,已经发布的教程质量很高,绝对值得一试,尤其是 Laravel from A to Z 课程,如果您刚刚开始使用该框架的话。
4.Laravel PHP 框架教程(初级,中级)

Laravel PHP Framework Tutorial
Laravel PHP 框架教程是 FreeCodeCamp 在线学习平台推出的初级视频课程。尽管 FreeCodeCamp 课程的后端部分以 Python 为中心,但它也在其 Youtube 频道上分享其他后端语言的教育视频,这些视频是由其开源社区的成员创建的。
这篇由 Victor Gonzalez 撰写的 Laravel 教程将指导您从头开始构建 Instagram 克隆,它具有跟随/取消跟随、个人资料编辑、调整图像大小等功能。这个视频大约有 4.5 小时长,但它被分成了几个小部分,这样你就可以很容易地看完。
优点:
- 真实世界项目
- 深入解释
- 由 FreeCodeCamp 审核
- GitHub 上的演示代码
- 社区成员在评论区帮助解决问题
缺点
- 基于 Laravel 5.8,所以可能包含一些过时的信息(即使你可以在评论部分找到这些问题的修复)
何时选择 Laravel PHP 框架教程 FreeCodeCamp
如果您想通过构建一个非常流行的真实应用程序的克隆来学习 Laravel,这里是免费学习的最佳场所之一。Victor 的解释很有思想,也很容易理解,如果你遇到问题,FreeCodeCamp 社区会很有帮助。
虽然它是针对初学者的,但如果你已经有一些 Laravel 知识,但想学习如何组装一个类似 Instagram 的应用程序,你可能也会发现它很有用。
5.让我们用 Laravel 构建:一个链接树克隆(初学者,中级)

Let’s Build with Laravel: A Linktree Clone
让我们用 Laravel 来构建:Linktree 克隆是一个快节奏的 Laravel 截屏,它教你如何构建一个类似于流行的 Linktree 服务的社交媒体登陆页面构建器应用程序。
该视频只有 58 分钟长,因为它没有解释基本概念或显示如何安装 Laravel,而是直接进入实践。这个免费的 Laravel 教程是由 Andrew Schmelyun 创建的,他在他的 YouTube 频道上还有其他几个 Laravel 视频,也值得一看。
优点:
- 简明扼要的解释,没有任何混乱或干扰
- 你可以在不到 1 个小时的时间内构建一个工作的 Laravel 应用程序
- 视频被分成更小的部分
- 源代码在 GitHub 上有
缺点:
- 音频质量不是最好的
何时选择“让我们用 Laravel 构建:链接树克隆”
虽然 Youtube 上的视频描述说它是为初学者准备的,但如果你对 Laravel 完全陌生,你需要记住,这个视频假设了 Laravel 的一些预先存在的知识,例如安装或初始配置。
这篇 Laravel 教程非常适合用这个框架构建你的第一个应用程序,如果你想提高你的应用程序开发技能也是如此。
6.Laravel 播客(初级、中级、高级)

The Laravel Podcast
Laravel 播客是由 Matt Stauffer 主持的双周播客,以 Laravel 和 PHP 相关的讨论为特色。每一集都围绕一个主题,比如身份验证、迁移、调试、设置本地环境等等。剧集时长约 1.5 小时,你可以使用嵌入式播客播放器或苹果播客来收听。
优点
- 信息量大的内容
- 定期更新
- 剧集被很好地记录(摘要、注释、链接推荐)
- 有文字记录
- 高质量音频
缺点
- 不能下载单集
何时选择 Laravel 播客
尽管播客不是经典的教程,但它是让你熟悉新技术、听取行业专家的观点以及了解最新功能的绝佳方式。因此,对于任何水平的开发者来说,Laravel 播客都是一个强烈推荐的 Laravel 资源。
(有没有考虑过做播客?查看我们关于如何用 WordPress 发布你的第一个播客的深度指南。
8 个最受欢迎的 Laravel 教程视频、截屏和书籍
1.拉腊卡斯特(初级、中级、高级)

Laracasts
Laracasts 是一个优质的教育平台,提供关于 web 开发的视频。虽然它的主要焦点是 Laravel 框架,但它也有其他技术的课程,其中大部分可以与 Laravel 一起使用,如 CSS ,JavaScript,PHP,SQL,Vue.js 等等。
它还有五个特色 Laracast 旅程 : Laravel、测试、PHP、JavaScript 和工具。旅程是你掌握某项技能所需的一系列截屏。
需要为您的客户站点提供一个非常快速、安全且对开发人员友好的托管服务吗?Kinsta 是为 WordPress 开发者设计的,提供了大量的工具和强大的仪表板。查看我们的计划
优点:
- 截屏有三种不同的组织方式(主题、系列、旅程)
- 易于导航的网站
- 非常高质量的截屏(音频和视频)
- 也有关于流行的 Laravel 包(Envoyer、Forge、Nova 等)和理论(坚实的原则、设计模式等)的截屏。)
- 活动论坛(可通过免费论坛帐户获得)
缺点:
- 没有免费试用期
何时选择 Laracasts
Laracasts 是高质量的视频教程,每个级别都推荐。尽管这是一项高级服务,但你可以找到一些完全免费的系列,例如,Envoyer 上的中级系列和 Forge 上的初级系列。然而,你不能过滤免费课程,所以你需要自己去找。
即使你不想为会员付费,注册一个免费的论坛账户也是值得的,尤其是当你的代码需要一些社区帮助的时候。
2.拉勒维尔日报(初级、中级、高级)

Laravel Daily
Laravel Daily 是前面提到的 Laravel 商业 Youtube 频道的创建者 Povilas Korop 的付费 Laravel 教程网站。Povilas 在这里有 10 个付费和 1 个免费的 Laravel 视频教程系列,涵盖了一些有趣的主题,如用 Laravel 创建发票制作应用程序,用 Laravel 和 Vue 构建 CRUD SPA,掌握口才,用 Laravel 创建 REST API ,等等。
优点:
- 真实世界 Laravel 项目的实时编码
- 记录完善、结构合理的课程内容
- 一个免费的初学者实用速成班
- 所有代码示例都可以在 GitHub 上找到
- 您可以通过安全的教学平台注册/支付
- 您可以通过电子邮件将您的问题发送给 Povilas
缺点
- 课程没有发布日期(尽管你可以从相关 GitHub repo 的提交历史中猜出)
每日何时选择 Laravel
Laravel Daily 推荐给任何水平的 Laravel 开发者。如果你已经是 Laravel 商业频道的订户,并且喜欢 Povilas 的教学风格,他在 Laravel Daily 上的付费视频课程可以成为你在 Laravel 旅程中的下一步。
如果你想获得在就业市场上需求量很大的技能,这也是一个很好的选择,例如 API 或与 Laravel 一起的 SaaS 开发。
3.代码课程(中级、高级)

CodeCourse
CodeCourse 是一个用于 web 开发教程的优质截屏平台。大多数截屏都是以“路径”的形式构建的,分为四类:Flutter、Vue.js、Laravel 和 design patterns。
Clean Laravel 路径由九个视频课程组成,教你如何编写高质量、干净的 Laravel 代码。CodeCourse 还有一个更短的 Laravel 路径,称为使用 Laravel 过滤的。除了路径之外,CodeCourse 还提供单一课程,在这里你可以学习如何用 Laravel 构建不同类型的应用,包括 Twitter 克隆、代码片段网站和电子商务平台。
优点:
- 新内容会定期添加
- 关于路径和课程的丰富信息
- 高质量的截屏(视频和音频)
- 侧重于实践技能
- 免费提供名为“片段”的短片
- 介绍视频是免费的
缺点:
- 结构不良的网站(不清楚他们有不同类型的内容,单一的课程只能从“图书馆”菜单中获得,“片段”很难找到,等等)
- 没有免费试用
何时选择共修课程
要从 CodeCourse 的 Laravel 截屏中获益,您需要熟悉 Laravel 开发的基础知识。但是,如果你有框架的中级知识,或者已经在这个行业工作,你可以在这里学到很多新的东西。
尽管这是一项高级服务,但它真的不贵,所以如果你找到了你感兴趣的课程或道路,这是你时间和精力的一项很好的投资。
4.使用 Laravel、Vue.js 和 Capacitor 构建 API 和 spa(高级)

Building APIs and SPAs with Laravel, Vue.js, and Capacitor
用 Laravel、Vue.js 和 Capacitor 构建 API&单页应用的终极指南是 Dan Pastori 和 Jay Rogers 的电子书,可以在 ServerSideUp 上找到。它涵盖了如何从同一个代码库开发 web 和移动应用程序——所有应用程序都与一个集中的 API 进行通信。
这本书讲述了构建一个名为“烘焙”的真实应用程序的过程,这是一个咖啡屋查找应用程序。这不仅仅是一个演示,而是一个现有的应用程序,允许你注册,添加你最喜欢的咖啡馆,在地图上找到咖啡馆,等等。你也可以在你的安卓或 iOS 设备上安装烘焙应用。
优点:
- 由行业专家撰写
- 结构良好的内容(销售页面上有目录)
- 两个免费章节(但是,您需要注册 ServerSideUp 时事通讯才能获得)
- 电容器优化的草图和 Figma 图标模板
- 有三种不同的格式( PDF ,EPUB,MOBI)
- 访问私人在线社区以获得帮助(仅当您购买更贵的套装时)
- 终身访问和更新
- 在 ServerSideUp 网站上有一些免费的高级 Laravel 教程
缺点:
- 额外的视频教程(作为更昂贵的软件包的一部分宣传)仍在建设中
何时选择“使用 Laravel、Vue.js 和 Capacitor 构建 API 和 spa”
如果你已经是一个经验丰富的 Laravel 开发者,这本电子书可以扩展你的专业知识,进一步拓宽你的知识面。它指导您在构建复杂应用程序时如何支持三种代码库(web、iOS、Android)。
它还将 Laravel 与前沿工具配对——nuxt . js前端框架(构建在 Vue.js 之上)和电容器跨平台运行时(见文档)。另外,它涵盖了 Laravel 8,所以现在它是市场上最新鲜的 Laravel 书(已经有 380 页,新的章节还在继续)。
5.LinkedIn 学习(初级、中级)

LinkedIn Learning
LinkedIn Learning,以前称为 Lynda.com,是一个优质的电子学习平台,提供了一个完整的学习途径。
它由五个独立的课程组成,从(1) Laravel 基础知识开始,然后涵盖(2)测试、安全性和部署,(3) RESTful API 构建,(4) Vue 基础知识,以及(5)将 Vue.js 和 Laravel 一起用作全栈环境。如果你完成了这条学习道路,你将有足够的知识开始你的职业生涯,成为一名全栈式 Laravel 开发人员。
优点
- 指导者是行业专家(贾斯汀·约斯特、雷·维拉洛博斯、迈克尔·苏立文)
- LinkedIn 审核的高质量专业视频
- 结构良好、易于导航的内容
- 有文字记录
- 你可以获得一枚 Linkedin 完成徽章
- 一个月免费试用
- 适用于安卓和 iOS 的移动应用
缺点
- 这些课程涵盖了 Laravel 5 和 6,因此在某些地方可能包含过时的信息
何时选择领英学习
如果你想成为一名全栈 Laravel 开发人员,并且没有庞大的投资组合,LinkedIn Learning 的 Laravel path 可能会帮助你找到工作,因为你可以在你的 LinkedIn 个人资料上显示完成徽章(见它到底意味着什么)。如果您想学习更长的关于全栈 Laravel 开发的课程,这也是一个不错的选择,在这里已经为您收集了所有必要的内容。
6.Udemy(初级、中级、高级)

Udemy
Udemy 是一个全球性的电子学习市场,独立创作者在这里出售他们的视频课程,不仅仅是网络开发,还有许多其他科目。
Laravel 主题目前包括所有知识水平的 280 门课程。Udemy 的界面为你提供了几个不同的过滤器,比如价格、评分、时长、级别等等,帮助你找到最适合你的 Laravel 教程。除了英语,它还提供其他语言的课程。
优点
缺点
- 视频和音频的质量参差不齐,因为课程是由独立作者上传的
何时选择 Udemy
由于 Udemy 提供了近 300 个 Laravel 教程视频系列,你需要投入一些时间和精力来找到你所需要的。值得注意的是“畅销书”、“新品”和“热门&新品”的标签,尽管你无法过滤这些特征。
不要忘记阅读学生评论和观看预览,因为 Udemy 不是一个具有标准化质量保证流程的集中平台。如果你碰到一个坏苹果,你仍然可以使用 30 天退款保证拿回你的钱。
7.技能共享(初级、中级)

Skillshare
Skillshare 是另一个类似于 Udemy 的电子学习市场,但是它使用了不同的定价模式。在这里,你不需要为个别课程付费,但你需要支付月费,这样你就可以访问所有的 Skillshare 课程。
目前,Skillshare 列出了 22 门由独立教师创建的 Laravel 视频课程,但是,请注意,有些 PHP 课程由于某种原因也被列为“Laravel 课程”。
Skillshare 的大部分 Laravel 课程侧重于实践技能,例如建立一个个人预算网站,一个 todo 应用程序,一个邮件列表过滤器,一个任务调度管理面板,以及其他一些功能。
优点:
缺点:
- 你必须注册才能看到价格计划
- 视频质量因课程而异
- 课程没有发布日期(尽管您可以筛选“今年创建的”课程)
何时选择技能共享
虽然 Laravel 开发不是 Skillshare 的主要关注点,但你可以在这里找到一些不错的高级课程。如果你已经是 Skillshare 的会员,也值得看一看 Laravel 的教程视频。
或者,如果你是 Skillshare 的新手,但对他们教授的其他主题感兴趣(除了网络开发之外还有很多,从摄影到音乐到创意写作),注册会员也是个好主意。
8.Eduonix(初级、中级)

Eduonix
Eduonix 是一个拥有独立讲师的在线学习市场,类似于 Udemy 和 Skillshare。它使用与 Udemy 相同的定价模式,所以你可以单独为每门课程付费(然而,它可以选择所有 Eduonix 课程的终身会员资格和一些 T2 捆绑折扣)。
目前,它提供了 16 个 Laravel 视频课程,其中大部分课程会指导您完成一个动手项目,例如创建一个翻译成四种语言的酒店应用程序、一个单页论坛应用程序、一个带有 Vue 前端的联系人管理器应用程序(这个在“学习 Laravel Building 10 Projects”课程中)等等。
优点:
- 课程内容的详细信息(包括上次更新的时间)
- 真实项目
- 高级过滤系统
- 竣工证明
- 30 天退款保证
缺点:
- 视频和音频的质量因课程而异
- 廉价优惠券网站的外观和感觉
何时选择 Eduonix
如果你对动手制作应用程序比理论更感兴趣,Eduonix 可能是你的一个不错的选择。尽管它没有提供大量关于 Laravel 开发的课程,但还是值得关注一下,特别是因为一些创作者在 Udemy 和 Eduonix 上都出售他们的课程,但价格不同(通常 Eduonix 更便宜)。
摘要
设定一个学习目标来了解你的前进方向可以帮助你找到最适合自己的学习指南。如果你有自学在线学习的经验,你就已经知道你喜欢哪种类型的材料:基于文本的教程、视频、视频、播客、博客或更长的书。
您不一定要从一个 Laravel 教程开始,但是您也可以选择一个混合的方法。例如,你可以从视频课程开始,同时订阅时事通讯、收听播客、阅读博客。
如果你不确定自己需要什么技能,浏览求职网站是个好主意,比如 LaraJobs,看看市场上有什么需求(这可能会随着时间而变化)。
你也可以使用项目规划应用程序,如 Trello 或其替代品之一来跟踪你的进度,设置截止日期和提醒,并通过遵循学习计划来不断激励自己。
如果你选择了付费的 Laravel 教程,通常从按月订阅开始比提前一年付费更好,直到你知道你可以期待什么(即使按年订阅每月费用更低)。
最后,在学习过程中尽早开始搭建一个可以工作的 Laravel app。看到你已经能够完成一个现实世界的项目,可以帮助你跟上学习并达到你的目标。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
Laravel vs Node:一个头对头的比较
Laravel 和 Node.js 是过去十年中最有影响力和最有效的两种 web 开发技术。它们的性能和出色的解决问题的特性对现代开发人员来说是有利的,自从它们问世以来,已经对 web 开发行业产生了重大影响。
Laravel 是一个 PHP 框架,具有更强的强度和稳定性。由于 PHP 驱动了 78%的 web ,Laravel 获得了巨大的市场份额。
Node.js 也称为 Node,是一个用 JavaScript、C 和 C++构建的 JavaScript 运行时,它提供了开发人员进行全栈开发和快速性能所需的所有工具。
他们两人在各方面都很出色。你需要熟悉每一个选项,以便为即将到来的项目确定正确的选项。
为什么我们要比较这两种技术?虽然 PHP 框架和 JS 运行时环境没有直接的相似性,但是我们注意到很多用户在线提出了 Laravel vs Node 的问题。本文将通过查看每种技术的关键特性、主要差异和用例来尝试回答这个问题。
我们开始吧!
什么是 Laravel?

Laravel’s official logo. (Image source: Github)
Laravel 是一个 PHP 框架,旨在简化现代 PHP 应用的创建。由于其强大的生态系统,许多开发人员利用它来简化开发过程,利用 Laravel 的内置功能和多个兼容的包和扩展。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
Laravel 在开发方面取得了杰出的成就,并且一直满足用户的编码期望。正是这个框架阻止了 PHP 逐渐消亡。
Laravel 通过提供常规使用的方法或 API(如路由或认证)来促进 web 开发。您可以利用这些预构建的特性和模板来采用一个省时的 web 开发过程,而不是从头开始编写所有代码。

Laravel Eloquent ORM. (Image source: TheCodework)
Laravel 开发在开发应用时遵循模型-视图-控制器(MVC)架构。它维护项目的目录结构,实现安全措施,包含 Voyager、Laravel-Breeze、Laravel-Debugbar 等多种包。
与其他现代 web 开发框架不同,Laravel 简化了数据库交互,允许您使用 raw SQL、流畅的查询构建器和支持任何数据库(如 MariaDB 或 MySQL)的雄辩 ORM。
Laravel 的主要特点

Laravel framework features. (Image source: MavenCluster)
让我们来了解一下 Laravel 的一些主要特性:
- Blade 模板引擎: Blade,Laravel 的内部模板引擎,通过将几个模板整合成一个数据模型来产生一个视图。它有自己的控制结构,由条件语句和循环组成,允许干净的动态代码。
- 模型-视图-控制器( MVC)架构: Laravel 的 MVC 架构保证了表示层和业务逻辑层的分离,使得开发过程更快。这种 MVC 设计提高了应用程序的效率,并为开发人员增加了安全性和可伸缩性。
- 口才对象关系映射(ORM): Laravel 使用口才,一个对象关系映射(ORM)框架。ORM 允许 web 开发人员用 PHP 而不是 SQL 构建数据库查询。它还通过分配匹配的模型来集成程序员和数据库表,从而获得比旧的 PHP 框架更快的性能。
- 内置包:Laravel 中众多的预配置包简化了你的代码,帮助你保持一个整洁的环境。例如,社交软件将脸书或谷歌认证整合到你的网站中,允许用户点击注册。
- 安全性: Laravel 通过其内置的安全系统在内部处理您网站的安全性。由于 Laravel 的功能是作为一个中介系统来拦截所有的请求和进程,它可以防止黑客远程将有害代码引入你的服务器。此外,它内置的 CSRF 令牌可以保护您免受其他安全威胁。
- Artisan: Artisan 是一个命令行工具,在 Laravel 框架中自动执行重复的编程任务。它可以创建数据库结构、代码框架或代码迁移,它可以通过命令行生成和维护原始的 MVC 文件,并使用它们的选项管理这些资产。
Laravel 用例

Laravel use cases. (Image source: Aglowid)
让我们看看 Laravel 的一些引人注目的用例,从自由开发者到企业级公司:
- 高性能 web 应用:开发人员使用 Laravel 框架创建高性能、安全的在线应用或网站。
- 微服务架构应用: Laravel 的微框架设计对于电子商务应用非常高效。它由多个独立运行的模块组成,并基于单个构建块集成大规模 Laravel 应用程序。因此,将一个冗长的程序分成更小的、独立的部分变得很容易。
- 高级别安全应用:散列秘密词、Bcrypt 散列计算和结构化 SQL 等安全特性允许开发高度安全的应用。而且 Laravel 生成的所有 cookies 都是加密签名的;如果客户修改了它们,它们就会失效。因此,Laravel 比 PHP 更安全。
- 预建应用: Laravel 拥有众多预建应用,为开发者和用户节省时间。如果你需要建立一个类似的应用程序,你可以很容易地使用在 Laravel 网站上找到的模板。
谁用 Laravel?
作为最流行的 web 开发框架,Laravel 为开发人员创造了一个受欢迎的利基市场。今天,各种规模的企业,从初创企业到公司,都依赖于 Laravel。
以下是一些使用 Laravel 的公司:
- 英国广播公司(British Broadcasting Corporation)
- 辉瑞
- 9GAG
- 旅游雷达
- 关于你
- 诺维尔公司。
- 发票忍者
- 艾莉森(女子名)
- 拉拉卡斯特
- 阿尔法编码员
Node.js 是什么?

The Node.js logo. (Image source: ZTM)
许多 IT 和开发爱好者经常承认 Node 是一种编程语言,这是一种普遍存在的误解。
Node 更像是 JavaScript 编程语言的超级套装,赋予了它传统编程语言所没有的特殊能力——例如,客户端和服务器端开发的能力。
Node.js 是一个单线程、开源、跨平台的运行时环境,它在浏览器之外执行 JavaScript 代码,用于服务器端开发。它也用于构建网络应用程序。如前所述,它采用了 Google V8 JavaScript 运行时引擎和非阻塞、事件驱动的 I/O 架构。
对于那些正在为构建另一端而烦恼的开发人员来说,这是一个理想的工具。Learning Node 让你成为一名全栈开发人员,可以构建应用程序的前端和后端。
Node 采用异步、事件驱动的方法,非常适合开发在分散设备上运行的时间敏感、数据密集型应用程序。由于 Node 的非阻塞特性,它对于构建实时应用程序来说也是高度可扩展的。
Node 拥有丰富的 JavaScript 模块库,在创建 web 应用程序时非常有用。所以,好消息是,如果你在发展中遇到困难,援助永远不会远离你。
而且 Node 很容易安装,可以马上开始使用。
节点主要功能

Node main features. (Image source: GeeksforGeeks)
让我们来看看 Node 的一些主要特性:
- 异步和事件驱动:节点库提供的所有 API 都是异步的(非阻塞)。基于节点的服务器从不等待来自 API 的数据。相反,在访问一个 API 之后,服务器继续下一个。它还使用一个名为 Events 的通知系统来接收和监控对以前的 API 查询的响应。
- 全栈:节点是为了理解和执行 JavaScript 代码而设计的。有了 Node,客户端和服务器端的开发变得轻而易举。它允许 JavaScript 能力开发人员开发全栈应用程序。因此,前端和后端是同步的,因为您可以在两端使用 JavaScript。
- 单线程:由于其单线程事件循环架构,Node 具有极佳的可扩展性。与使用有限线程处理请求的传统服务器相比,node.js 的事件机制使其无阻塞且可伸缩。与 Apache HTTP Server 相比,Node 使用单线程软件,可以处理更多的请求。
- 跨平台兼容性: Node 兼容 Windows、Unix、Linux、Mac OS X 和移动平台。您可以将它与相关的包结合起来,生成一个自给自足的可执行文件。使用 NW.js 和 Electron,开发人员可以构建跨平台的实时应用程序,而无需为每个平台单独编写代码。
- 快速数据流: Node 是一个轻量级的、快速的、支持本地流 API 的框架。它允许用户互相转发请求。因此,它将数据直接传输到目的地。由于回调函数的概念,节点应用程序以块的形式输出数据。它减少了所需的处理时间,并且在没有缓冲的情况下提供有效的数据流。
- 物联网协议:节点不需要大量的服务器端内存和资源。因此,软件开发人员可以使用物联网开发来实现多个设备之间的并发链接。此外,Node 支持大多数物联网应用程序采用的消息队列遥测传输(MQTT)协议。因此,独立和第三方设备的后端集成变得毫不费力。
- 节点程序包管理器(npm): 节点程序包管理器(npm)是节点的本机程序包管理器。npm 帮助您下载和安装基本的应用程序包,并允许您利用其他地方的代码,而不是从头开始编写。NPN 是世界上最大的软件库注册中心。除了帮助安装软件包库之外,它还处理库依赖关系。
- 性能:作为谷歌 Chrome 的 V8 JavaScript 引擎运行 Node,可以高速率执行代码。此外,它将 JavaScript 代码翻译成机器代码,实现起来更容易、更快。其优异的性能源于异步编程和非阻塞输入输出过程等概念。此外,Node 广泛使用事件,这有助于其非凡的速度。
- 可伸缩: 节点 应用由于其异步(非阻塞)操作,具有很强的可伸缩性。节点在单线程上运行,当请求到达时,它就开始处理请求,并准备接收后续请求。此外,一旦准备好响应,就会将其发送给客户端。
节点用例

Node use cases. (Image source: Simform)
让我们来看看为开发人员和企业服务的一些引人注目的节点使用案例:
- Web 流应用: Node 包含一个本地流 API,可以利用 Unix 管道有效地进行流传输。类似地,它允许只下载网络应用程序的某些部分,其余部分在后台下载以避免缓冲。因此,像网飞这样的公司使用 Node 为他们的客户提供优雅的流媒体体验。
- 实时应用:实时应用可以说是 Node 的最佳用例。节点允许重用和共享库代码包,这加快了服务器到客户端的数据同步。此外,Node 的 WebSockets 和事件 API 可以处理密集的 I/O。因此,Node 在实时协作解决方案的开发人员中很受欢迎。
- 高度可扩展的应用: Node 包含多种尖端功能,例如允许在多个 CPU 内核上实现负载平衡的集群模块,从而更容易通过更小的模块提供所需的结果,而不会耗尽 RAM。因此,随着用户群的持续增长,它已经成为所有应用程序和平台的首选。
- 服务器端代理:第三方代理导致混乱和糟糕的 web 应用程序性能。甚至像 Nginx 和 HAProxy 这样的著名代理也不能同时处理多个请求。Node 可以容纳多个并发的非阻塞连接,这使它成为一个理想的服务器端代理。例如, BBC News 使用 Node 来管理与其第三方信息服务器的连接。
- 服务器端渲染:在 Node 中使用服务器端渲染(SSR),你的应用可以生成一个完整渲染的网页,直接发送给客户端,绕过浏览器。它还具有库支持和浏览器特性,而不是并发模型。最近,Airbnb 迁移了一项类似的服务,该服务可以在 Node 中生成类似的完整的、由服务器呈现的网页。
谁使用 Node?
自 2009 年成立以来,Node 已经为多个市场领导者发挥了举足轻重的作用。节点 开发的应用目前被各种规模的企业使用,从初创公司到财富 500 强企业。
让我们看看一些实施 Node 的行业领先公司:
Laravel vs Node:一个头对头的比较
现在我们已经了解了什么是 Laravel 和 Node,它们的特性和应用,让我们更深入地比较和对比它们的具体参数。
相似之处:
虽然 Laravel 和 Node 看起来不一样,但两者之间有明显的相似之处。在我们深入剖析这些编程奇迹之前,让我们讨论一下它们之间的相似之处。
- 开源:【Laravel 和 Node 都是开源应用。Node 是一个开源的运行时环境,而 Laravel 是一个开源的 web 开发框架。
- 全栈:【Laravel 和 Node 都提供了全栈开发。在前端,Laravel 在后端使用 JavaScript 和 PHP。节点的前端和后端都使用 JavaScript。
- 可靠性: Laravel 和 Node 得到了全球众多软件开发商的支持和利用。大量的软件应用程序都是用这两种语言构建的。由于它们的可靠性和可靠性,这两种技术仍然处于所有 web 技术的前沿。
结构和灵活性
编程语言的效率和性能取决于它的结构,而结构决定了函数。Laravel 使用模型视图控制器(MVC)架构,而 Node 使用单线程事件循环架构。让我们比较和对比一下这两者有什么不同。
拉勒韦尔

Laravel framework workflow. (Image source: How-To-Geek)
Laravel 是一个基于 PHP 的 web 框架,深受模型视图控制器(MVC)架构的影响。MVC 架构将程序的业务逻辑从其表现中分离出来,并影响程序的性能。控制器充当管理所有请求的桥梁,联系模型以检索请求的数据,并将数据传输到视图。
Laravel 旨在让 PHP 开发人员更容易启动新项目。使用 Laravel,您可以更少地关注项目的设置、架构和依赖性,而更多地关注项目的核心功能。
结节

Node workflow. (Image credit: Appiness)
Node 遵循单线程事件循环设计范例。它与多线程的请求/响应技术有很大的不同。但是,一个线程可以同时管理几个客户端。值得注意的是,JavaScript 的基于事件的模型和回调机制是 Node 的主要处理组件。
节点向应用程序发送阻塞和非阻塞请求。然后事件循环逐个接收请求。它为不需要客户端外部授权的单个请求提供服务并返回响应。
如果请求很复杂并且需要客户端联系,则从线程池中分配一个线程。线程将完成块请求,包括数据库通信。
扩展性和可伸缩性
可伸缩性主要指系统处理不断增加的工作量的能力。如果您使用的系统可能会与大量流量交互,那么您应该选择能够有效管理流量的技术。
拉勒韦尔
Laravel 采用 MVC 架构和几个线程来处理请求。当它接收到多个请求时,就变得有些欺骗性。由于 Laravel 需要执行额外的计算工作来服务请求,维护可伸缩性可能会变得困难。
工作量越大,需要的逻辑和能力就越多。因此,它需要更大的存储容量和功能,从而降低了作曲者的速度。
有了 Laravel,开发人员现在可以创建可伸缩的系统。通过平衡 HTTP 请求的负载,利用 HTTP 平衡器可以使基于 Laravel 的系统更具可伸缩性。
结节
Node 的单线程事件循环架构使其具有高度的可扩展性。因此,它作为一种开发工具受到了极大的关注。此外,异步操作的特性使得平稳处理重负载变得更加容易。
Node 可以提供管理实时微服务所需的最具可扩展性的解决方案。此外,它比 Python 提供了更多的可伸缩性。
学习曲线
学习编码时,每个人的体验都不一样。学习 Laravel 和 Node 需要分别熟悉 PHP 和 JavaScript,因此对于初学者来说,学习曲线可能很难。
拉勒韦尔
据说拉勒维尔有一个陡峭的学习曲线。在整个 Laravel 学习过程中,你必须具备 PHP 的工作知识和 HTML 和 CSS 的编程经验。
也就是说,Laravel 的模板和预装资源将加速 web 应用程序的开发。它还为您管理一些基本的开发功能。
如果您想使用 Laravel,您需要熟悉 Laravel 的代码结构、MVC 架构、Laravel 库和数据库集成等等。然而,有了 Laracasts 这样的工具和大量的文档,掌握框架和 PHP 编程语言应该不难。
结节
如果你熟悉 JavaScript,Node 很容易理解。您还需要理解 Node 的架构,它是建立在 JavaScript 和 npm 包模块之上的。您可以从一个节点演示项目开始学习架构和模块安装。
如果您已经牢牢掌握了 JavaScript,您可以立即开始使用 Node 进行开发。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
性能(速度)
Laravel 是公认的各种特点,但不是它的速度。另一方面,Node 快得令人难以置信。然而,由于 Node 是单线程的,因此使用 Node 执行复杂的数值计算会很耗时。
Node 明显比 Laravel 快,但 Laravel 更健壮。把 Laravel 想象成一辆双层巴士,而 Node 更像一辆摩托车。
如果您计划执行大量计算过程,请使用 Laravel 否则,使用节点。
拉勒韦尔
Laravel 具有一个刚性架构,可以有效地处理简单和复杂的基于计算的应用程序。它在数据库交互和安全性等方面表现出令人印象深刻的效率。
Laravel 提供了大量经过 Laravel 开发人员验证的库,为您的项目提供了效率和可靠性

Laravel execution time. (Image source: Medium)
如果您的网站需要身份验证,您可以从多个身份验证包(如 Laravel-Auth 或 Breeze)中进行选择,以自动启用安全功能。
Laravel 还包括用于定制的预构建代码。因此,您可以减少花费在开发上的时间,并从质量和时间效率的提高中获益。
结节
Node 中的单线程事件循环架构提供了显著的性能提升。查询不必等待外部请求,因此处理所述请求所需的时间显著减少。这可以大大提高实时应用程序和单页应用程序(spa)的性能。

Node request handling. (Image source: Medium)
npm 模块为几乎所有场景提供了代码模板。然而,越来越多的图书馆让找到合适的图书馆变得更加困难。此外,因为 Node 允许创建和重用来自不同用户的代码片段,所以每个模块的性能可能不同。
此外,在管理具有复杂计算和数据库集成的高端业务时,Node 可能不太可靠。
也就是说,它擅长管理应用程序的可伸缩性。
用户化
因为两者都是开源的,所以都允许定制的机会。但是,由于它们的操作方式不同,选项也会有所不同。
拉勒韦尔
作为开源软件,Laravel 为你提供了功能代码,让你随心所欲地进行实验。如果你精通 PHP,你甚至可以根据你的应用规范修改这些代码。
此外,Laravel-Auth 和 Laravel-Breeze 为您的应用程序提供了一个前端认证系统。您可以使用 Laravel 包库修改前端和后端身份验证代码的功能和外观。
结节
和 Laravel 一样,Node 运行时环境是开源的。您可以根据您的开发规范定制包模块并管理依赖版本。Node 还提供了一个样板文件,您可以将它修改成一个功能齐全的应用程序,并与他人共享(如果您愿意的话)。
受欢迎程度和就业市场
Laravel 的流行源于 PHP 的流行,而 Node 的流行源于 JavaScript 的流行。通过查看下面的谷歌趋势报告,我们可以看到用户搜索这些网络技术的频率。

Laravel and Node popularity on Google.
拉勒韦尔
Laravel 是最流行的 PHP 开发框架,因为它有清晰的语法、浅显的学习曲线、可靠的安全性和高性能。根据 JetBrains 在 2020 年进行的一项调查,50%的 PHP 开发人员经常使用 Laravel,Github 的一项排名显示,Laravel 是最受欢迎的 PHP 框架。

The most popular backend frameworks. (Image source: Statistics & Data)
对 Laravel 开发者的需求是巨大的,这意味着 Laravel 开发者有权要求足够的补偿。在美国,Laravel 开发人员的平均工资约为每年 92,000 美元,或每小时 44 美元。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
由于互联网的大部分都是建立在 PHP 之上的,Laravel 及其开发者的胃口不太可能很快消失。
结节
JavaScript 是过去十年中最流行的编程语言,68%的专业开发人员以某种方式使用它。Node 使 JavaScript 开发人员能够管理前端和后端,这证明了其受欢迎程度的指数增长。
根据 StackOverflow 的数据,目前有 36%的专业开发人员将 Node 作为他们的主要语言或框架。Node 在 Github 上也有 87000 颗星星。

Most Popular Programming Technologies 2021 (Image source: Stack Overflow)
Node 是一种未来的编程语言,所以在可预见的未来,对 Node 工作的需求减少的可能性很小。得益于此,节点开发者获得了丰厚的报酬。一个远程节点 开发人员的工资大约是每年 114000 美元,或者每小时 55 美元。
如果你对 Node 的职业感兴趣,现在是时候开始了。
安全性
在安全性方面,Laravel 比 Node 更突出,因为 Laravel 可以防范常见的漏洞。除非您将 Laravel 用于原始查询,否则它会清理所有数据。然而,Node.js 的核心是安全的,但是第三方包通常需要额外的安全性。
拉勒韦尔

Laravel Security Features (Image source: Webnexs)
Laravel 的安全特性是其最重要的方面。它使用安全的 Bcrypt 哈希算法来加密我们的密码和 CSRF 令牌来保护您的表单数据。
拉勒维尔用雄辩的 ORM 防御 SQL 注入。PDO 或 PHP 数据对象类是雄辩的 ORM 安全的主要原因。Laravel 还支持 HTTPS 传输敏感数据的请求。
结节

Potential Node security issues. (Image source: Simform)
使用其授权组件时,Node 还提供高级别的安全性。然而,这并不承认开源软件的安全性和许可困难。

A Node machine-in-the-middle (MIDM) attack. (Image source: Medium)
Node 塞满了第三方模块,其中许多都有安全缺陷。然而,Node 已经实现了一个反 CSRF 令牌来检查身份验证,用户也可以使用 cookie 会话模块。此外,自动化的漏洞扫描可以帮助识别典型的节点安全漏洞。
生态系统(支持和社区)
拉勒韦尔
Laravel 是全球最流行的 web 开发框架之一,全世界的开发者都在用它构建大量的应用程序。因此,Laravel 有一个丰富的用户社区。
大多数开发人员互相帮助,共享他们的包,并指导新的开发人员。Laravel.io 或 Laracast 是框架的实质性技术支持社区的例子。
此外,Laravel 使用 PHP,这意味着任何人在使用 PHP 代码时遇到困难都可以从 Laravel 社区寻求帮助。此外,科技巨头如脸书、Github、T2、LinkedIn、其他社交网络和在线用户论坛拥有众多的 Laravel 用户支持团体。
结节
Node 拥有大量的用户论坛,提供技术援助和建议。Node 官方网站有自己的用户社区,网站 Nodejs.dev 提供了补充的 Node 用户支持社区。
用户可以在脸书、Github、StackOverflow、Linkedin 和其他社交网络上找到专门的地方来讨论与节点相关的问题和解决方案。随着越来越多的网站和应用程序使用 Node 开发,社区对该框架的支持继续呈指数级增长。
句法
Laravel 使用 Blade 语法,而 Node 使用 JavaScript 语法。让我们更深入地讨论每一个问题。
拉威尔刀片式服务器
Laravel Blade 是一个强大的模板引擎,它使 Laravel 用户能够快速开发语法并毫无困难地使用模板引擎。它提供了一个实质性的结构,包括条件表达式和循环。
您可以通过创建一个视图文件并使用 .blade.php 扩展名而不是来保存它,从而创建一个刀片模板。php 。

Laravel Blade syntax. (Image Source: Medium)
让我们看看一些 Laravel 刀片语法:
-
显示数据:要打印变量的值,请用花括号括起来:
{{$variable}}; -
三元T3】运算符:刀片模板中三元运算符的语法是这样的:
{{ $variable or 'default value'}} -
刀片循环:刀片模板引擎提供循环指令,包括
@for、@endfor、@foreach、@endforeach、@while和@endwhile:@for ($i = 0; $i < 10; $i++) The current value is {{ $i }} @endfor @foreach ($users as $user) <p>This is user {{ $user->id }}</p> @endforeach @forelse ($users as $user) <li>{{ $user->name }}</li> @empty <p>No users</p> @endforelse @while (true) <p>I'm looping forever.</p> @endwhile -
If 语句:使用
@if、@elseif、@else和@endif指令,可以创建 If 语句。这些指令和它们的 PHP 对等物有相同的功能:@if (count($records) === 1) I have one record! @elseif (count($records) > 1) I have multiple records! @else I don't have any records! @endif -
原始 PHP: 有时候,在你的视图中加入 PHP 代码会很有帮助。使用 Blade
@php指令,您可以在您的模板中执行一个普通的 PHP 块:@php $counter = 1; @endphp -
评论:刀锋也允许你在你的观点中添加拉拉威尔评论。与 HTML 注释不同,Blade 注释不包含在应用程序提供的 HTML 中:
{{--The resulting HTML will not contain this comment. *--}}* -
CSRF 字段:在应用程序中定义 HTML 表单时,要包含一个隐藏的 CSRF 令牌字段,这样中间件就可以验证请求。您可以使用
@csrf刀片指令:<form method="POST" action="/profile"> @csrf ... </form>生成令牌字段
-
堆栈: Blade 支持推送命名堆栈,您可以在不同的视图或布局中的其他地方呈现这些堆栈。这对于指定孩子的视图需要的 JavaScript 库很有用:
@push('scripts') <script src="/example.js"></script> @endpush
结节
Node 和 JavaScript 使用相同的语法。但是,这些 API 之间存在差异。
Node 不支持传统的浏览器 DOM,尽管在 nodejs.org 可以获得额外的 API。然而,浏览器的怪癖导致了语法上的差异。
让我们看看 Node 的一些语法:
-
原始类型:节点支持以下原始数据类型:
-
字符串
-
号
-
未定义
-
布尔型
-
Null
-
正则表达式
-
松散类型:Node 中的 JavaScript 允许松散类型,类似于基于浏览器的 JavaScript。可以用 var 关键字声明任何变量。
-
对象文字:对象文字语法与浏览器的 JavaScript:
var obj = { authorName: 'Zadhid Powell', language: '*Node**' }*相同
-
职能:节点视职能为一等公民。此外,一个函数还可能具有特征和性质。它也可以被视为一个 JavaScript 类:
function Display(x) { console.log(x); } Display(100); -
节点调试器:节点有简单的 TCP 协议和调试客户端。您可以使用
debug后跟。js 用于调试 JavaScript 的文件名:node debug [script.js | -e "script" | <host>:<port>] -
节点文件系统(FS): 节点通过封装在简单包装器中的传统 POSIX 方法提供 I/O 文件。您可以使用下面的语法导入[节点文件系统【T4:
var fs = require("fs") ```](https://kinsta.com/knowledgebase/nodejs-fs/) -
节点事件:节点线程完成一个任务后,释放相关事件,执行事件监听器函数:
// Import events module var events = require('events'); // Create an eventEmitter object var eventEmitter = new events.EventEmitter(); -
node . js V8:node . js V8 模块包含 V8 特有的接口和事件。通过
v8.getHeapStatistics()和v8.getHeapSpaceStatistics()函数,它提供了对堆内存统计数据的访问:const v8 = require('v8'); -
节点 Punycode: Punycode 将 Unicode (UTF-8)字符串转换成 ASCII 字符串。使用 Punycode 是因为主机名只理解 ASCII。Punycode.js 随 Node.js 版本 0.6.2 及更高版本一起提供:
punycode = require('punycode');
Laravel 与节点:对照表
让我们看一下 Laravel 与 Node 的对比,并回顾一些基本的编程参数:
| 拉勒韦尔 | 结节 | |
|---|---|---|
| 创造 | Two thousand and eleven | Two thousand and nine |
| 种类 | 语言(PHP)框架 | JavaScript 运行时环境 |
| 易于编码 | 简明的 | 长的 |
| 流行 | 0.35%的网站 | 4.24%的网站 |
| 发动机 | 刀片模板引擎 | 谷歌的 V8 JavaScript |
| 包管理器 | Composer 包管理器 | 节点程序包管理器(npm) |
| 执行 | 同步的 | 异步的 |
| 执行速度 | 强大而轻巧 | 更快、更轻便 |
| 并发 | 多线程阻塞 I/O | 事件驱动的非阻塞 I/O |
| 表演 | 慢的 | 更快的 |
| 网络服务器 | 不需要 | Apache 和 IIS |
| 数据库ˌ资料库 | 4 (MySQL、PostgreSQL、SQLite、SQL) | 关系型和传统型 |
| JSON | json_encode | JSON.stringify()和 JSON.parse |
| 最新版本 | 拉勒韦尔 9 | 节点 18.3.0 |
| 社区 | 小但在上升;分享 PHP 社区 | 庞大的在线社区 |
Laravel vs Node:你该选哪个?
既然我们已经深入探讨了这两个开发奇迹,您应该对它们有了更好的理解。这两个框架提供了大量的功能,使您的开发更易访问、更稳定、更安全、更可伸缩。
我们的研究表明两者各有利弊。为此,基于客观证据的优势宣言是无益的。
最后,您应该选择与您的项目所需的特性集相匹配的技术..
何时使用 Laravel
如果您的项目有以下要求,您应该使用 Laravel:
- 快速开发:由于其预制的模板和社区支持,Laravel 是最快的应用程序开发框架之一。
- 全面系统: Laravel 为任何规模的基于 CMS 的网站提供了一个强大的系统。以 PHP 为基础,Laravel 可以高效地管理大型网站。
- 行业 -g 拉德:拉勒维尔在专业、教育、购物、商业等主流行业都欣欣向荣,除了艺术和娱乐行业,这个节点占主导地位。
- 高度安全: Laravel 禁止在数据库中存储明文密码,因为它需要散列和加盐密码。此外,它还包含一个集成的安全和授权系统以及 Bcrypt 哈希算法来进行密码加密。
何时使用节点
您应该将 Node 用于需要以下内容的开发项目:
- 全栈:选择服务器端和客户端同时开发的节点。Node 消除了协调独立的前端和后端框架或团队的麻烦。
- 速度和性能: Node 运行程序的速度比大多数编程语言都要快,从而显著提高了性能和稳定性。如果希望应用程序同时处理许多命令和请求,请选择 Node。
- 聊天 app: Node 是开发实时应用的最佳选择。没有其他类似的技术。如果要创建多用户实时应用程序,请使用 Node。
- 数据流:在常规平台中,HTTP 请求是独立的事件。Node 提供了类似的功能,并支持流式传输(在上传期间处理文件)。使用 Node 构建音频/视频流应用程序。
- 仪表板监控: Node 是开发监控仪表板的优秀工具,尤其是应用和系统监控仪表板。Node 的实时功能、双向套接字和事件循环功能有助于开发强大的监控功能。
Need a little help picking the right framework for your project? 👩💻 Start here ✅Click to Tweet
摘要
Laravel 和 Node 在功能和预期用途上都是独一无二的,毫无疑问,它们在最近几年非常受开发人员的欢迎。
然而,最终的决定更多地取决于您的用户需求,而不是 Laravel vs Node 可能提供的特性。当涉及到您的开发时,一种技术可能包含您需要的所有基本内容,而另一种可能不包含。
无论哪种方式,在可预见的未来,您都可以依靠 Laravel 和 Node 这两个仍然可行的开发选项。
你有机会在最近的作品中使用 Laravel 或 Node 吗?在下面的评论中分享你的想法吧!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
如何在 WordPress 帖子和页面上显示最后更新日期
当在网上发布内容时,你必须向用户展示博客帖子、页面或媒体是新鲜、准确和最新的。
揭示你的内容的时效性的一个方法是在 WordPress 博客文章或者页面的某个地方显示“最后更新”日期,比如专题图片、标题或者整篇文章的上方或者下方。
这样,用户可以看到最近更新的日期以及“发布”日期,或者您可以完全替换发布日期。
查看我们的视频指南,显示 WordPress 帖子和页面的最后更新日期
简而言之,显示的日期更近,向读者(和搜索引擎)表明你的内容是新的,你没有让太多时间过去(这可能会导致链接断开、信息不准确或图像过时)。
在哪里查看发布日期和最后更新日期
根据你的主题风格,发布日期可能会出现在的帖子、页面或两者上;最常见的位置是在标题之后,内容之前,并且经常有署名。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。

An example of the published date on an old post.
话虽如此,发布日期的造型和位置完全取决于你的主题。你可以在特色图片的上方看到它,还有一个图标,就像下面的主题一样。
Make sure your posts are fresh & up to date with this guide! 🗓✅Click to Tweet

The Twenty Twenty theme offers a unique published date format.
一些主题甚至将发布和最后更新的日期放在内容的末尾,就在评论框之前。

The date on this theme is displayed below the content.
你也可以通过进入你的帖子列表中的日期栏,在后台找到发布日期。

The Date column shows published dates in the WordPress dashboard.
WordPress 也在帖子编辑器中显示发布日期。

The Published date is the only date shown when editing a post in WordPress.
在本文中,我们解释了显示“最后更新”日期而不是发布日期的好处。我们还将向您介绍显示上次更新日期的各种方法,同时演示如何判断网站上次更新的时间。
请继续阅读,了解所有相关信息!
在你的网站上显示“最后更新”日期的好处
定期更新你的内容,并显示最后更新的日期,为网站所有者、搜索引擎用户和那些已经在你的网站上的人带来各种好处。考虑到搜索引擎在确定排名时会考虑新鲜感和相关性,这也有助于搜索引擎优化。
以下是在你的页面和文章上显示“最后更新”日期的主要好处。
- 最近的日期比发布日期更准确,它显示您的内容可能比不久前发布的内容更新。
- 用户看到这是一篇更新的文章,不会认为这是一篇旧文章,这可能会增加你的点击率和用户阅读的总时间。
- 你的“最后更新”日期让你更有可能脱颖而出,因为搜索引擎会在结果中显示这些日期,你的结果会被其他网站的列表放在右边。
- 这给了搜索引擎另一种识别帖子新鲜度的方法。 当然是搜索引擎抓取内容;但是这种情况并不总是发生,而且“最后更新”的日期会加强你的网站上所做的任何更改。
- 更近的日期提供了一种信任感,即你已经消除了内容问题,如断开的链接,损坏的图像,以及任何不再真实的内容。
- 当内容(和日期)更新时,搜索引擎倾向于更频繁地索引你的网站。这不是一个硬性规定,但是众所周知,搜索引擎会记录不断更新内容的网站,更频繁地抓取它们。
- 你提高了整体搜索排名 的潜力,因为你的整个网站都从你更新的帖子中受益。
- 它给你一个更新内容的视觉借口/提醒,因为你可能会注意到一个更老的日期,并意识到需要更新。
- 搜索引擎更喜欢你更新旧的内容,而不是每次你有关于同一主题的新信息时就写一篇新文章。这消除了重复内容的可能性,也解释了为什么显示最近的日期对改善 SEO 最有好处。
- 一些出版物(如在线报纸)需要有“最后更新”日期,这样带有更正和新信息的内容就会显示在网站提要的顶部。这是为了让用户不会错过那些更新。
如何在 WordPress 中显示最后更新的日期
默认情况下,WordPress 不会显示新内容或更新内容的最后更新日期,而是显示发布日期。即使几年后这篇文章有了多次更新,这个发表日期依然存在。
一些现代主题提供了内置功能,只需点击几下鼠标就能显示最近更新的日期。首先检查 WordPress Customizer 的主题中的日期定制设置是一个好习惯。但是不能保证任何东西都是可用的。
如果你不能在 WordPress 定制器中添加最后更新日期,使用这些方法来添加它:
- 通过编辑functions.php文件和 CSS
- 通过修改和添加代码到你的主题模板中
- 带插件
前两种方法需要你访问你的网站的主题文件,所以如果你还没有经验的话,请阅读 WordPress 文件层次结构(以及如何理解它们)。
查看以下三种方法,了解在您的情况下最佳的行动方案。
方法 1:在你的主题中编辑functions.php和 CSS
在 WordPress 中添加“最后更新”日期的第一种方法是访问你的主题的functions.php文件,并向该文件添加代码。或者,你可以将代码添加到一个子主题或特定于站点的插件中,以避免当你切换或更新主题时代码消失的问题。
所有这些选项都使用相同类型的 CSS 代码,所以我们会给你一些代码来添加,并告诉你如何把它放在functions.php文件中。如果使用子主题或特定站点插件,只需使用相同的代码并修改这些文件。
首先,去你的主题的functions.php文件。访问functions.php最简单的方法是使用FTP 客户端与 SFTP 连接。你通常可以在你的 FTP 客户端找到它,方法是进入/www(或者你的网站名称)> /public > /wp-content > /themes > /theme-name(在本教程中我们使用的是/twentytwentyone)。

Open the functions.php file.
使用文本或 markdown 编辑器打开文件,然后添加以下代码(如果使用子主题/特定于站点的插件,该代码也应该有效):
function show_last_updated( $content ) {
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 86400) {
$updated_date = get_the_modified_time('F jS, Y');
$updated_time = get_the_modified_time('h:i a');
$custom_content .= '<p class="last-updated-date">Recently updated on '. $updated_date . ' at '. $updated_time .'</p>';
}
$custom_content .= $content;
return $custom_content;
}
add_filter( 'the_content', 'show_last_updated' );
保存文件并上传回您的服务器。因此,最后更新的日期就出现在文章内容的前面。代码首先检查发布日期和最后更新日期是否相同。
如果它们是相同的,您仍然可以看到发布日期本身。如果它们不同,最后更新日期将与发布日期一起显示。

Frontend view of the last updated date.
重要的
所有的主题都有不同的表现,所以你可能会发现发布日期仍然在最后更新日期旁边;其他主题完全删除了发布日期,以便为最后更新的日期让路。
如何更改新的最后更新日期的样式
在functions.php中的新 PHP 代码缺乏风格,但是从你的主题风格来看,它仍然是可以接受的。如果没有,考虑通过插入定制的 CSS 代码来控制最后更新日期的外观。这里有一些示例代码可供尝试或扩展:
.last-updated-date {
font-size: large;
font-family: monospace;
text-transform: uppercase;
color: white;
background-color: black;
}
注意,我们使用了与插入到functions.php中的 PHP 代码相关的last-updated-date类。您可以根据自己的需要更改这个类,但是要确保在您的 CSS 代码中也使用相同的类。
注意:完全可以根据需要更改 CSS 属性和值;这些只是例子。
在 WordPress 中进入外观>定制>附加 CSS 后,将 CSS 代码插入到字段中。这使得 CSS 能够覆盖整个网站,而不仅仅是在一个页面或帖子上。

Add CSS code for styling.
在发布 CSS 代码之后,这些样式上的变化会反映在最后更新日期的所有前端实例上。例如,我们改变了背景颜色、字体颜色、字体系列、字体大小,还将所有内容都转换为大写字母。

Frontend view after CSS styling.
如何删除页面和其他非文章内容的最后更新日期
你现在可能会发现,你网站上的每个网页都有最后更新日期;考虑到你没有理由显示像主页、产品页面、关于我们页面和购物车等页面上次更新的时间,这是没有用的。
例如,这个隐私政策页面现在会显示它最后更新的时间,尽管对于登陆该页面的人来说这是无用的信息(而且主题一开始就没有显示发布日期)。

Some sites don’t need a last updated date on pages like a Privacy Policy.
如果你发现自己处于这种情况,很可能是因为你的主题。一些 WordPress 主题会自动删除页面的最后更新和发布日期,因为没有任何理由。但是你可能最终得到一个没有这些功能的主题。在这种情况下,您所需要的只是简单地添加前面实现的 PHP 代码。
所以,回到你的主题的 functions.php 的文件,在86400和)之间添加这个。
&& is_singular('post')
像这样:
function show_last_updated( $content ) {
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 86400 && is_singular('post')) {
$updated_date = get_the_modified_time('F jS, Y');
$updated_time = get_the_modified_time('h:i a');
$custom_content .= '<p class="last-updated-date">Recently updated on '. $updated_date . ' at '. $updated_time .'</p>';
}
$custom_content .= $content;
return $custom_content;
}
add_filter( 'the_content', 'show_last_updated' );
有了这个附加功能,最近更新的日期文本将从每一个 WordPress 文章类型中隐藏,而不是一篇文章(比如页面或产品)。

The date gets stripped from all pages, but remains on posts.
删除发布日期,仅显示最后更新日期
即使在您实现了添加最后更新日期的代码之后,发布日期仍然存在是很常见的。有些主题会删除它,但这并不常见。问题是,现在你有两个日期显示在你的 WordPress 帖子上:发布日期和最后更新日期。
虽然在某些情况下这是可以接受的,但是两个日期很可能会给读者造成混淆。因此,您可能希望隐藏发布日期,但保留最后更新日期。
有插件可以做到这一点,但是 CSS 的修复很简单,所以我们不建议安装一个完整的插件来删除你网站上的一个元素。
要去掉发布日期但保留最后更新的日期(之前从上面的方法中添加的),在 WordPress 仪表盘中进入外观>定制>附加 CSS 。
将此代码粘贴到附加 CSS 字段:
.entry-date {
display: none !important;
}
点击发布按钮,使这些更改生效。

Add CSS in the WordPress Customizer.
您现在应该看到发布日期被删除了,但最后更新的日期仍然显示。

Frontend view of the last updated date still there without the published date.
请记住,尽管.entry-date CSS 类名在许多主题中都很常见,但并不是所有的主题都使用它。所以,如果这段代码不适合你,很可能是因为你的主题使用了一个不是.entry-date的类名。
但是 CSS 代码仍然很好,所以你所要做的就是找出你的主题用于发布日期的类名。为此,导航到一篇博客文章的前端,在当前显示的发布日期上右键单击。选择检查选项(这因你的浏览器而异:Chrome 使用检查,Firefox 使用检查元素,对于 Safari 你必须按下 Option 键+ C )

Right click on the date and choose the Inspect option.
这将显示浏览器的开发者工具部分,显示当前页面的编码元素,尤其是您刚刚单击的页面元素的 CSS 代码。
如果你点击了日期,它应该显示为主要元素,但是如果没有,寻找一个用于<time class=的部分。您的发布日期的 CSS 类应该紧接着出现;这种情况下是entry-date。但是开发者在创建主题时会使用很多变体,比如post-date、posts-date和published-date。

Look for the “time class=” snippet and the information after it.
仅复制该类(不复制括号或其他元素)。
将代码粘贴到下面的 CSS 片段中,替换掉yourthemes-class-name。确保在类名前保留句点。
.yourthemes-class-name {
display: none;
}
这应该可以了!
一种快速(但有时是有效的)摆脱发布日期的方法
一个快速和无代码的方法来删除发布日期,但仍然保留最近更新的日期(从前面的方法插入),是通过完全删除 WordPress 通用设置中的日期格式。
在 WordPress 中,进入设置>常规,然后向下滚动到日期格式和时间格式部分。为两者选择自定义选项,并清除每个字段中的示例格式。点击底部的保存更改按钮。

Choose Custom and clear out the fields.
因此,在您的博客帖子(或任何类型的帖子)上不会出现更多的发布日期,然而最后更新的日期仍然存在,只要您已经实现了必要的代码来显示 functions.php 文件中的最后更新日期(如本文前面所示)。

You should see the updated date without the published date on the frontend.
重要的
你所有的文章类型在后台仍然会收到一个“发布”的时间戳,所以你可以在 WordPress 的文章列表中找到那个日期,搜索引擎会记录一个发布日期。然而,您可能会发现这种方法对于某些主题并不适用,尤其是当发布日期中包含了一些额外的文本或图标而被遗漏时。我们的例子实际上留下了一些“已发布”的文本,但幸运的是这并不重要,因为它对“按作者姓名”的文本仍然有意义。我们还注意到,在删除默认设置后,一些主题会重新填充自定义日期格式字段,因此这并不适用于所有人。
方法 2:编辑你的主题模板
主题开发者在主题文件中使用不同的模板来显示信息。大多数情况下,主题模板决定了帖子元数据(如发布日期)在主题上显示的位置和方式。
您可能需要进行一些搜索,但想法是找到负责在前端共享帖子日期和时间的模板(以及该模板中的代码)。同样,开发人员在使用的模板上也有所不同,但是在这些模板中看到发布日期代码是很常见的:
- index.php
- page.php
- single.php
- archive.php
- content.php
- template-tags.php
- template-functions.php
/inc文件夹中的一个 PHP 文件/post文件夹中的一个 PHP 文件/content文件夹中的一个 PHP 文件/excerpt文件夹中的一个文件/template-parts文件夹中的一个文件
这取决于开发人员的判断(以及他们自己的风格),因此您必须四处挖掘,找出正确的代码所在的位置,或者找到与上面列出的不同名称的文件。
以下是找到正确主题文件的一些选项:
- 向主题开发人员发送消息,询问哪个主题模板控制帖子发布日期的输出。你也可以在网上或某个主题的用户论坛中完成搜索。
- 检查最常见的主题模板。对于更简单的主题,你可以从index.php、page.php、single.php开始,但大多数现代主题都使用类似于
/template-parts、/excerpts和/inc的文件。 - 使用 FTP 客户端的搜索功能来查找文本实例,如
posted、time、date、get_the_time或get_the_date。
对于这个例子,我们使用的是 Twenty Twenty One 主题,我们发现发布的日期代码位于 template-tags.php 的文件中,让您了解主题开发人员没有多少标准化。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
本文件中发布日期的指标包括:
- 对时间类的引用
get_the_date代码- “已发布”文本

Various indicators to find the file that serves up dates.
当您发现类似的指示符时,请在代码中确定一个区域,以便放置最后更新的日期。通常最好在已经显示发布日期的部分之前或之后插入新代码。
复制这段代码并粘贴到您想要的位置:
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 86400) {
echo "<p>Last Updated on ";
the_modified_time('F jS, Y');
echo " at ";
the_modified_time();
echo "</p> ";
}

Paste the code into your template file.
使用模板文件往往会花更长的时间来找到正确的文件夹,但它有几个好处,主要是最后更新日期实际上会显示在多个区域中。
其中一个区域就是您插入帖子代码的地方。在这个例子中,我们现在可以在文章的底部看到最后更新的日期和文本,就在发表日期的上方。

The last updated date now shows on each post.
更改主题模板还会在主博客/存档页面上提供最后更新的日期,所有 WordPress 的文章都会按顺序列出。因此,每个更新的帖子都会在列表中显示该日期,让站点访问者更加清楚地了解内容的新鲜程度。

This method also reveals the last updated date on your main Blog/Archive page.
更改上次更新日期出现的位置
主题模板决定了日期如何出现在 WordPress 帖子上,但是它们也决定了日期在帖子上的位置。
由于这取决于主题及其模板结构,您可能会发现一个主题在帖子的顶部显示了发布和最后更新的日期,就在标题的下方,内容的上方。其他主题开发者选择在底部显示日期,比如在作者传记之前,或者甚至在某个独特的地方,比如在侧边栏中。
因此,需要使用主题模板来调整帖子的最后更新或发布日期。有时,这意味着简单地将您在方法 2 中插入的代码移动到同一个 PHP 文件中的其他地方。
其他时候,这个 PHP 文件实际上是一个“模板部分”文件,然后由一个主模板提取,这个主模板组织所有的模板部分,形成文章的格式。
使用我们之前的 Twenty Twenty One 主题示例,很明显,template-tags.php文件只是最终插入到主帖子主题文件中的一小部分。因此,您的工作是询问开发人员哪个主题模板处理帖子格式,或者自己做一些研究。
虽然我们不能保证这适用于每一个主题,但是寻找一个“主”主题模板是一个很好的起点,比如 single.php 的、content-single.php 的、甚至是 post.php 的。
对于 Twenty Twenty One 主题,我们实际上可以将最后更新的代码插入到 single.php 的或者 content-single.php 的或者 T2 的中,就像 single.php 的如何作为“主”模板文件一样,但是 content-single.php 的是从single.php 的**中提取的模板部分。

Open the content-single.php file, or whichever template part file has the code that displays dates.
要移动最后更新日期的位置,请将方法 2 中提到的代码粘贴到您想要的位置。我们可以看到这个文件有一个header部分和一个the_content的片段,所以我们将最后更新的日期代码放在这两个部分之间,将日期从内容下面的默认位置移到内容前面。

Move the code to a suitable position.
在前端,最后更新的日期现在出现在我们想要的位置,您可以从以前的位置(靠近底部)删除重复的日期,或者将它们都留在那里。

The last updated date is now at the top of the post.
在 Astra 主题中添加最后更新日期
由于主题模板的用法(和名称)随着主题的不同而变化,我们将向您展示如何在几个因其多功能设计选项和速度而受欢迎的主题中插入最后更新日期:Astra、Neve 和 Zakra。
第一个是 Astra ,这是一个众所周知的多用途主题,有一个免费的入门模板库。这些起始模板中的每一个都向主题模板目录添加了新文件,但是基本结构保持不变。对于本教程,我们安装了一个初学者模板,现在想在每篇文章的顶部添加一个最后更新日期。
为了让您了解每个主题的不同之处,Astra 主题(及其旅游博客启动模板)在默认情况下甚至不显示发布日期。无论如何,您仍然可以添加最后更新日期。要使用本文中的方法 1 插入日期,请在 FTP 客户端转到/wp-content > /themes > /astra。打开functions.php文件。

Open functions.php.
将方法 1 代码粘贴到文件的末尾,并保存到您的服务器。结果是最后更新的日期显示在你的博客文章的顶部。

A frontend view of the last updated date in Astra.
使用方法 2,找到名为single-layout.php的主题模板。它位于/astra > /template-parts > /single下面。

Open the single-layout.php file.
您使用的是相同的代码,但是一些主题模板要求您指定您使用的是 PHP 代码;因此,如果您在前端看到的是代码而不是呈现的日期,请在代码周围添加括号。
`Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
它应该是这样的:
<?php
function show_last_updated( $content ) {
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 86400) {
$updated_date = get_the_modified_time('F jS, Y');
$updated_time = get_the_modified_time('h:i a');
$custom_content .= '<p class="last-updated-date">Recently updated on '. $updated_date . ' at '. $updated_time .'</p>';
}
$custom_content .= $content;
return $custom_content;
}
add_filter( 'the_content', 'show_last_updated' );
将代码片段放在包含the_content代码的那一行的正上方。

Insert code into single-layout.php.
在 Astra 主题的内容开始之前,保存并上传新文件到服务器会生成一个最近更新的行!

Last updated date result on the frontend of Astra.
在 Neve 主题中添加最后更新日期
Neve 主题很好地提醒了在修改任何代码之前,一定要检查 WordPress 定制器。每个主题都在定制器中添加了自己的设置,所以您可能会发现一个开关,只显示最后更新的日期。Neve 就是这种情况。
要打开 WordPress 中的设置,请转到外观>自定义>布局>博客/档案。点击帖子 Meta 下拉菜单。确保日期在元订单下可见,然后打开选项“使用最后更新的日期而不是发布的日期”
最近的日期会显示在博客页面和每个帖子上。

Neve makes it easy with a Customizer setting.
在 Zakra WordPress 主题中添加最后更新的日期
Zakra 是另一个棘手的问题,你可能会想到去 WordPress 文件中的/template-parts文件夹,以便找到提供发布日期的代码。然而,正确的位置是在/inc文件夹中。
要将最后更新日期添加到 Zakra,通过 FTP 客户端连接并转到您站点的/themes文件夹。然后,导航至/zakra > /inc > template-tags.php。打开文件进行编辑。

Open the template-tags.php file.
将之前讨论过的代码粘贴在);(来自get_the_time函数)和$posted_on = sprintf(之间。将文件保存回服务器。

Paste the code inside the Zakra theme template.
这个日期现在出现在 Zakra 主题的所有帖子的前端。

The last updated date on the frontend of Zakra.
如果编辑主题设计时仍有问题
正如您在本文中多次注意到的,每个主题都有自己的内置样式、 CSS 代码和 PHP 功能。因此,不可能说出每个主题如何响应我们的示例代码。此外,许多主题已经有了合适的样式,甚至可以显示上次更新的日期,而无需您做任何调整。
不管是哪种情况,处理最后更新日期时出现的大多数问题都是由于硬编码的主题文件,或者文件中的某种唯一性。因此,最好联系你的主题开发者,告诉他你想要达到的目标。他们通常可以提供一个快速的解决方案,为您的特定情况提供合适的 CSS 或 PHP 代码。
方法 3:使用插件
我们建议在依赖插件之前,使用上述方法之一来修改发布日期。这是因为你添加的每一个插件都会产生更多潜在的性能和安全问题;这个特殊的日期变化很小,所以当你所要做的就是编辑 functions.php 的 T2 文件或主题模板时,我们宁愿避免添加插件。
说到这里,你可能会发现上面的方法都不起作用,或者它们没有按照你想要的方式发挥作用。在这种情况下,考虑安装并激活 WP 上次修改信息插件。
这个插件消除了等式中的猜测,允许你添加最后更新日期,调整设置(比如替换发布日期),以及格式化日期的外观和位置。

The WP Last Modified Info plugin.
一旦激活,进入 WordPress 仪表盘中的设置> WP 最后修改信息。在帖子选项页面,打开开关“启用前端帖子/页面”

Enable for Posts and Pages on the frontend.
您也可以选择将显示方法更改为:
- 内容之前
- 内容之后
- 替换发布日期
- 手动(使用短代码)
向下滚动页面,找到其他设置:
- 日期格式
- 时间格式
- 时间间断

You can choose to replace the published date with the last updated date.
保存这些设置,以显示网站前端的最后更新日期。如果有些东西看起来不太对,回到设置,看看是否有什么东西可以修复到你想看到的样子。

A frontend view of what the plugin displays.
该插件还会自动激活页面的最后更新日期。如果你想取消默认设置,回到插件设置,填写“文章类型,显示修改信息”字段。只需在字段中输入“Posts ”,以确保在页面的帖子类型中没有任何更新。设置好所有更改后,务必点击保存设置按钮。

Only show the updated date on Posts.
如何判断 WordPress 文章或页面最后更新的时间
在 WordPress 帖子上显示最近更新的日期是一回事,但是实际查看帖子最后更新的时间呢?毕竟,这是识别你应该修改的旧帖子的重要部分。
此外,查看发布日期和最后更新日期有助于解决您在添加最后更新日期时可能遇到的问题。例如,本文中的大部分代码要求实际上有一个最后更新的日期。这意味着如果帖子没有更新,你将看不到任何日期,直到在后端查找日期时你才知道。
要查看一篇 WordPress 文章或页面最后更新的时间(甚至是在实现上述方法的任何代码之前),你可以转到 WordPress 仪表盘的一个区域。
不幸的是,当你添加文章和页面时,WordPress 不会自动在后台显示修改日期或最后更新日期,即使你实现了我们上面方法中的一些代码。进入 WordPress 中的帖子列表只会显示一个发表日期栏。

There’s only a Published Date column on the backend post list.
帖子和页面编辑也是如此;你可以查看帖子标签,查看发布的日期,但不知道最后一次更新是什么时候。

Only the Published date gets shown by default.
获得 WordPress 中最后更新日期的内置方法
在没有内置显示功能的帮助下,最好打开有问题的帖子,然后点击右边的帖子标签。向下滚动找到一个修改按钮。
- 如果你没有看到修订按钮,这意味着你从来没有更新过它。
- 如果你看到一个修订按钮,点击它。

Click the Revisions button to view the list.
虽然这不能保证找到最后更新的日期,但它让你对这篇文章的活动有了一个很好的了解。
无论你是否发表文章,修改都会被保存到 WordPress 中,所以你可能会有一些修改日志,实际上并不是最后更新的日期。但是您可以查看过去的修订版,根据修订版中的内容,查看哪些是您最近发布的。
每个修订记录了日期和时间,您可以假定这也是最后一次更新的日期。

Check for the Last Modified date within the revisions.
如果您已经从前面的方法中实现了最后更新的日期代码,但是您没有在前端看到日期,这是一个查看帖子是否有更新日期的极好方法;如果没有,代码将不会显示任何内容。
或者使用插件在后端查找最后更新的日期
WP Last Modified Info 插件不仅将最后修改日期添加到前端,还在整个仪表板上创建了列和部分,以便更容易地发现你有一段时间没有更新的帖子。
安装了 WP 最后修改信息插件后,导航到 WordPress 中的帖子列表。插件会自动在日期旁边生成一个名为最后修改日期的新列。

The plugin includes a new backend column for the Last Modified date.
该插件还在帖子编辑器中显示一个名为 Last Updated 的标签,显示每篇帖子的最后更新日期和时间。

The Last Updated tab within the post editor.
Keep your blog posts accurate and up to date with a little help from this guide ✍️Click to Tweet ## 摘要
在本文中,您了解了:
- 如何判断网站上次更新的时间
- 在你的网站上显示最后更新日期的好处
- 如何使用以下方法在 WordPress 中显示最后更新日期:
- 方法一:编辑【functions.php】和你的主题中的 CSS
- 方法二:编辑主题模板
- 方法 3: 使用类似 WP 上次修改信息的插件
我们还探讨了以下技巧:
- 如何更改上次更新日期的样式
- 如何删除页面和其他非文章的最后更新日期
- 删除发布日期,以便只显示最后更新的日期
- 更改帖子上最后更新日期的显示位置
最后,我们向您展示了如何将最后更新日期添加到几个流行的主题中,包括:
- 二十二十
- 二十二十一
- 阿斯特拉
- 从不
- 扎拉
如果你有任何关于如何在你的 WordPress 网站上显示最后更新日期的问题,请在评论中告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。`**
免费学习 HTML 的最佳方式(以及为什么你应该这样做)
实现你的想法并不总是容易的。
你可能有一个完美的愿景,但是与你的开发者分享它是一个挑战。想法可能会在翻译中丢失,你的网站可能会错失目标。
更糟糕的是,你可能需要在发布前立即编辑,没有时间去找你的开发者。
这就是为什么学习 HTML 如此重要的原因。有了适当的 HTML 知识和技能,你可以熟练地建立和编辑一个网站,使你的愿景成为现实。
这篇文章将向你展示学习 HTML 需要做些什么,以及为什么在你的工具包里有它是至关重要的。
T3】
什么是 HTML?
HTML 代表HyperTextMarkupL语言。它是用于在标准浏览器中显示文档和各种作品的语言。
它被世界各地的企业用来驱动移动应用程序、软件和网站——几乎占所有网站的 92.8%。
学习 HTML 将为你和你的企业带来无数的机会。通过理解基本的 HTML,你将能够编写网站代码和调整脚本。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
起初,用 HTML 编写可能看起来很复杂。看看在这个 HTML 编辑器中编写的 HTML 代码行:

HTML 是一种独特的编码语言,需要高深的知识。
这可能现在对你来说没有意义,但是一旦你学习了 HTML 课程,你很快就会明白了。
当你学习和理解 HTML 的必要结构时,你将能够很快回忆起 HTML 的快捷方式。
在上面的例子中,您可以看到代码是为 HTML 页面编写的,包括页眉、标题和正文。括号内的标签开始给出文档结构,而实际内容可以添加到它们之间。
总的来说,标签和内容被认为是一个元素。理解 HTML 的第一步是学习所有最常用的标签和它们的作用。
例如,<p>标签表示一个段落。添加<p>开始一个新的段落,然后开始像这样键入您的内容:

理解不同的标签如何构成元素是学习 HTML 的关键一步。
所有开始标签都需要一个匹配的结束标签。您可以在标签前使用反斜杠来编写结束标签。例如,要结束一个段落,你可以在内容后面加上</p>。
这只是一个标签的例子。还有数百种其他标签可以帮助您创建更具活力的项目。将标签放在一起的顺序和方式决定了网页或资源的结构和风格。
一些最受欢迎的标签包括:
<H1>–第一个页眉文本大小<b>–加粗文本<i>–倾斜文本<a href=>–向文档添加链接<font size="+3">–将字体增大到特定大小
一旦你开始对 HTML 的研究,这些标签将成为你的第二天性。你将能够准确地回忆起你需要哪一个,而不必去查找它们。
这就是程序员在编写代码时速度如此之快的原因。他们知道标签,也知道如何将它们组合在一起,从而在头脑中创建动态的 HTML 编码资产。
你可能会想,“难道我不能雇人帮我写网站代码吗?”虽然答案是肯定的,但是仍然有很多理由让你学习 HTML。
让我们来看看为什么学习 HTML 是一项有价值的时间投资的几个最重要的原因。
有了正确的 HTML 知识和技巧,你可以熟练地建立和编辑一个网站,让你的愿景成为现实...但是你从哪里开始呢?🤔 点击推文
为什么你应该学习 HTML
简单地说:HTML 是你每天接触的大多数网站的基础。甚至这个网页也是一个 HTML 文档。
它在网络上如此普遍,以至于你至少了解 HTML 结构的基本知识是有意义的。你永远不知道它什么时候会派上用场。
了解这一点将有助于你成为更精明的商人、营销人员、产品开发人员和设计师。
当你理解 HTML 的时候,你可以做很多事情。坚实的 HTML 基础会让你从创建到编辑的过程中,从其他创始人、雇员和竞争者中脱颖而出。
通过理解基本的 HTML,您将能够:
- 构建您自己编码的自定义站点
- 站点上的主机资产
- 考察遗址,了解它们是如何建造的
- 编写其他资产的代码,包括基本软件、应用程序等
- 无需开发人员即可管理网站编辑
随着 HTML 的使用持续增长,决定学习 HTML 从长远来看甚至会有回报。
例如,看一下这个图表,可以看到 HTML 的使用在过去几年中是如何增加的,而 XHTML(一种较老的标记语言)的使用却在减少:

HTML 和 XHTML 语言使用图表
凭借对 HTML 的扎实理解,你可以成为几乎任何职位的候选人。如果你自己是一名企业家,你可以用这些技能来改善你的业务。
谁需要学习 HTML?
如果你发现自己在这个页面上,你很可能是学习 HTML 的优秀候选人——也是将从中受益的人。
在你犹豫不决之前,要知道你的年龄和技能水平并不重要。从创始人到实习生,每个人都会从学习 HTML 中受益。
没有多少人有 HTML 的经验,所以从头开始也没关系。拥抱学习新事物的兴奋,让你的好奇心飙升。
如果你懂 HTML,一个新的世界向你敞开。您可以通过创建响应性网站、应用程序等来实现您的想法。
HTML 将在各种工作职能中帮助人们:
- 营销人员——知道如何改变网站
- 产品开发-编码产品的交互渲染
- 客户服务–帮助查找订单和编码定制信息
- 设计师——在网上发布他们的作品,并了解他们将如何被描绘
- 销售人员–自动过滤潜在客户数据,发送冷邮件等。
- 创始人们对他们的产品或网站进行编辑,并以一种更具体的方式分享他们对 HTML 丰富资源的愿景
正如您所看到的,学习 HTML 有很多好处,并且这些知识可以影响多个不同的业务部门。
你想改变你的日常工作吗?考虑学习 HTML 作为一项新技能,你可以提供给你的公司。
当你理解 HTML 的时候,有很多工作可以做。
T3】
学习 HTML 可以获得哪些工作?
通过学习 HTML,你可以让自己对任何组织都有独特的价值。
让我们面对现实吧:任何组织都需要一个能扑灭网站大火的员工。
你不会在一夜之间成为软件开发人员,但是学习 HTML 会让你走上成为软件开发人员的正确道路。
HTML 编码知识是全世界雇主都需要的专业技能。软件开发人员是最常见的使用 HTML 的工作之一。
在过去的几年里,对软件开发人员的需求不断增长。据估计,到 2024 年将需要 2870 万软件开发人员:

未来几年对软件开发商的需求将持续增长。
如果你学习 HTML,你可以成为很多不同的软件开发者。有了 HTML 技能,你可以得到以下工作:
**对做网页开发者不感兴趣?别担心。有很多其他的工作会从你的 HTML 知识中受益。
HTML 知识将使你成为一个全方位的更有市场的就业前景。你自然会在公司的不同部门找到不同的方法来运用你的技能。
即使只是一点 HTML 的基础知识对任何公司来说都是一笔财富。你将知道人们在谈论什么,以及如何向团队成员解释技术想法。
市场营销、商业智能和产品开发都可以从 HTML 中受益。以下是你可以在这些学科中找到的一些工作:
- 电子邮件营销经理——你可以创建 HTML 格式的电子邮件,这些邮件在视觉上更吸引最终收件人
- 营销运营经理–通常需要 HTML 来添加集成,以确保客户数据的安全传递
- 数据科学/SQL 管理员–您可以运行 HTML 脚本来合成大量数据和模型
- 商业智能管理器–您可以使用 HTML 模块挖掘客户数据中的趋势和见解
- 产品经理——你可以使用 HTML 来构建、测试和编码新产品
如果这些工作听起来很有趣,你应该考虑花时间学习 HTML。但是不要搞错:学习 HTML 可能是一项具有挑战性的任务。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
这可能不是你马上就能理解的事情。相反,你可能必须努力确保你知道你正在学习的新语言的每一个组成部分。
但是对 HTML 有一个像样的理解到底有多难呢?让我们来看看新生应该期待什么。
学 HTML 有多难?
学习 HTML 需要练习,练习,再练习,就像任何新技能一样。
你学习 HTML 的方法应该像你学习一门新语言的方法一样。首先要明白,你是在没有任何先验知识的情况下开始的。即使是最有经验的工人也会感到羞愧。
然而,一旦你意识到你对这种新语言一无所知,你就可以开始钻研并发现它到底是关于什么的。
随着你的学习,HTML 对你来说会变得更加明显,你可以继续一点一点地学习每一课,每一课都会相互叠加。
很快,你就能把复杂的元素放在一起,制作出视觉效果惊人的 HTML 页面和应用程序。
学习 HTML 需要多长时间?
这个过程可能需要一段时间。如果简单的话,大家就都懂 HTML 了。
这确实是一项专业技能,你需要花时间去学习,以确保你慢慢理解一切。
有一些简短的课程可以在几天或一个月内教会你 HTML 的基础知识。然而,你不会一夜之间成为软件开发人员。
彻底理解 HTML 可能需要几个月或几年的时间来了解你需要了解的一切。
想知道如何开始?让我们来看看学习 HTML 的最佳方法。
学习 HTML 的最好方法
学习 HTML 的最好方法是指导练习。它可以在新兵训练营(面对面或在线)或有指导的模块。
一个模块提供了视频教学、讲座和指导练习的组合。有些甚至会在每节课结束时进行测试。
模块是实用的,因为它们使学生能够按照自己的速度学习,并对课程采取动手的方法。
下面是一个正在运行的模块示例:

有了 HTML 模块,你可以自我检查你的工作,确保你是在正确的轨道上。
理想情况下,你可以登录一个模块,学习一门关于 HTML 的课程,然后做一个练习来测试你新开发的技能。
随着时间的推移,这些课程应该相互借鉴。
厌倦了低于 1 级的 WordPress 托管支持而没有答案?试试我们世界一流的支持团队!查看我们的计划
你要确保你学习的媒介提供应用问题来测试你的技能。
它会帮助你理解你正在学习的概念和语言。
现在你知道了如何以及为什么要学习 HTML ,让我们来看看一些你可以免费使用的最好的 HTML 程序。
如何免费学习 HTML
在你的 HTML 教育之旅中,最关键的第一步是选择适合你的项目。
市场上有这么多不同的程序。你应该找到一个适合你的学习方式,并致力于它。
下面,我们列出了一些你可以在学习中使用的最好的免费 HTML 资源。
代码集

代码学院
Codecademy 有许多免费的项目为你提供你需要的技术技能。超过 5000 万学生使用 Codecademy 学习基本的 HTML 和编码。
该公司认为它已经“完善”了学生学习编码的方式。该计划包括三个不同的支柱:边做边学,获得即时反馈,并将所学付诸实践。这些将决定你如何用一种实际的、有指导的方法来发现 HTML。
该公司甚至提供论坛、聊天、章节和活动,以在您的教育之旅中获得更多帮助。你可以通过他们的界面实时聊天,或者在网上论坛发帖提问。
如果你在网上遇到志同道合的人,你甚至可以在一个 Codecademy 认可的活动中结识他们。通过将社区与实践学习结合起来,Codecademy 使自己与众不同。
Learn-HTML.org
【Learn-HTML.org】T2
Learn-HTML.org 是你需要了解的关于 HTML 的一切的可靠来源。Learn-HTML.org 是一个免费的在线模块课程,它将带你一步一步地进入编码的世界。
该网站为 HTML 初学者提供教程,向他们展示如何从头开始构建 HTML 和 CSS 网站。教程从基础开始,随着课程的继续,变得更加密集和复杂。
课程包括基本元素、链接、图像、按钮、导航栏、表单、视频、响应式网页设计、应用缓存、本地存储、拖放等等。
如果你在网站的某个特定元素上需要额外的帮助,这个网站是一个很好的资源。您可以很容易地找到教程,并获得关于您想要构建的特定小部件的有价值的信息。
总装配仪表板

大会破折号
General Assembly Dash 是一个开始学习 HTML 基础知识的热门网站。这个免费的在线课程利用项目来帮助你理解 HTML 的概念。
该计划是优秀的初学者谁想要一个基本的 HTML 概述或中间谁需要一个复习课程。
在同一门课程中,您还将学习 HTML5、CSS3 和 Javascript。它将使您能够制作具有多种布局和用户事件的令人惊叹的网站。
除了这个大会入门课程,你还可以继续深造。该公司提供了大量的教育课程和资源,以更好地了解 HTML 和其他感兴趣的相关主题。
麻省理工学院开放式课程

麻省理工学院开放式课程
麻省理工学院为想从国内领先的技术大学学习的有进取心的学生提供开放式课件课程。这些课程由著名的教师和学生设计,他们为在线内容做出贡献。
这些课程的形式类似于微型在线大学课程。您将能够观看视频讲座,查看课堂笔记,完成作业和项目,查看成绩单,并参加考试来测试您的技能。
完成后,您可以查看解决方案并了解自己的表现。这是一个很好的资源来补充你的 HTML 研究。像大学里教授的内容和付费课程一样,这些内容对学生是免费的。
你应该从 HTML 中学到什么
一旦你学会了 HTML,你的 web 开发教育就不会停止。要增强你的 HTML 知识并让它变得更有用,还有很多东西需要学习。
你还应该学习的另外两种语言包括 CSS 和 Javascript 。
CSS(或层叠滑动表单)是一种编程语言,它更关注文档的风格,而不是像 HTML 那样的简单结构。
总之,CSS 和 HTML 的知识可以让你成为一个熟练的开发人员。
Javascript 是另一种编程语言,你应该学习它来提高你的技能。它是一种编程语言,可以让你制作动态内容。您可以制作动画图像或让不同的多媒体元素在屏幕上飞舞。
Javascript 将使任何网站更吸引终端用户,并有可能增加他们在你的网站上的时间。
HTML 是你的网络工具包中至关重要的一部分,学习它很容易(而且是免费的!😄)借助本指南⬇️ 点击推文
摘要
学习 HTML 感觉像是一项事业。你需要了解你想要完成的基本内容,并找到满足你需求的合适项目。
通常,你会感觉像在学习一门全新的语言。这就是为什么花时间对正确的项目进行适当的投资是如此重要。
幸运的是,市场上的许多免费选项可以通过课程、教程和指导模块帮助你成为 HTML 专业人员。无论你选择哪一个,你都将很快开启 HTML 的秘密。
学完了 HTML?这只是你 web 开发之旅的开始。通过阅读我们关于学习的最佳编程语言的帖子来进一步了解。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。**
12 个可以学习 WordPress 的好地方
博客、论坛、在线课程、网络研讨会、会议、视频。这些只是学习 WordPress 的几种方法。但是你从哪里开始呢?你如何确定博客或在线课程是适合你的技能水平?
毕竟,一个熟练的开发者没有权利去阅读一个初学者的 WordPress 论坛。新手也一样。一些 WordPress 教程看起来很吸引人,但是如果你不小心的话,你可以进入一些非常高级的信息。
所以,对于如何学习 WordPress,你有很多选择。最大的问题是,哪些是最好的?
你想学习 WordPress 的哪些方面?
这是你需要回答的第一个问题,因为有太多你可能不感兴趣的技能水平和主题。你只是想推出一个基本的 WordPress 网站吗?如果是这样,初学者的课程就可以了。你想了解 WordPress 主题和插件开发吗?这是比普通用户感兴趣的更高级的课程。
从建立一个电子商务网站到修复常见错误,了解你学习 WordPress 的动机是很重要的。这样,你就不会对你的技能水平而言过于复杂或过于简单的在线课程感到困惑或支付费用。
什么是好的在线 WordPress 课程?
并非我们下面列出的所有在线资源都是课程形式的。有些是博客,有些是 YouTube 频道。有些是免费的,而有些是你必须付费的。不管成本如何,在评估 WordPress 资源是否有价值时,有某种标准可以参考是很好的。虽然这不是一个详尽的列表,但我们认为以下是允许我们彻底检查每一个 WordPress 资源的标准:
- 你以这个价格获得的内容的成本和价值。
- 它教授的技能水平。
- 无论资源和课程是否以视频、文章或两者的形式提供。
- WordPress 内容的质量。
- 是否提供测验。
- 课程材料的结构有多好。
- 跟随和理解一个人的教学是多么容易。
- 是否有有用的可下载的资料。
- 课程内容是最新的吗?
- 学习在所有设备上都可用吗?
很自然,你会希望上面的许多标准都被检查出来。因此,一门既有视频又有文章的课程很可能比只有文章的博客更好。我们将对下面的每个资源使用所有这些标准。这样,当你想学习 WordPress 的时候,你就会知道哪一个最适合你。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
如何修复 WordPress 中的利用浏览器缓存警告
Google PageSpeed Insights 是衡量网站性能的几个有用工具之一。然而,它的一些建议——比如“利用浏览器缓存”的警告——可能会让没有经验的网站所有者感到困惑。
当你把它分解开来,缓存并不那么难理解。通过一些调整,您可以在您的站点上实现这种开发最佳实践,以减少加载时间并提高 PageSpeed 分数。
在本帖中,我们将首先介绍利用浏览器缓存警告。然后我们会分享一些在你的 WordPress 网站上解决这个问题的技巧。
让我们跳进来吧!
更喜欢视频版?
什么是利用浏览器缓存警告?
为了理解利用浏览器缓存的警告,首先了解一下 Google PageSpeed Insights 会有所帮助。如果你是这个平台的新手,我们推荐阅读我们的完整指南, Google PageSpeed Insights:用 WordPress 打分 100/100。
利用浏览器缓存警告是 Google PageSpeed 用来返回的许多“诊断”之一,作为提高分数的建议,如下所示:

Leverage Browser Caching warning in Google PageSpeed Insights
在 Google PageSpeed Insights 的第 5 版中,此消息被替换为警告“使用高效缓存策略服务静态资产”:

Serve static assets with an efficient cache policy warning in Google PageSpeed Insights
尽管语言和外观发生了变化,但这些警告的解决方案是相同的。
谷歌建议使用浏览器缓存来减少页面加载时间并提高性能。简而言之,缓存就是用户的浏览器保存站点页面的静态副本。然后,在随后的访问中,这些内容可以更快地重新加载,因为浏览器不必为了访问所请求的资源而联系站点的服务器。
但是,每个缓存的资源都需要指定的过期时间。当你的网站上的内容过时时,它会告诉浏览器,所以它可以用更新的版本替换缓存的副本。
如果您在性能测试结果中看到“利用浏览器缓存”警告,这可能意味着以下两种情况之一:
- 您的站点服务器或第三方服务器上缺少 Cache-Control 或 Expires 标头。
- 必要的头是存在的,但是有效期很短,因此对性能没有太大影响。
此警告的解决方案包括修复其中一个或两个问题。
🚨警告!利用浏览器缓存🚨如果阅读这些文字让你心跳加速,你会想看看这篇修复可怕的 message⚡️的指南 点击推特
如何修复 WordPress 中的浏览器缓存警告(3 种方法)
有几种不同的方法可以修复 WordPress 中的利用浏览器缓存警告,这取决于是什么引起的。这里有三个解决方案,你可以试试。
1.添加缓存控制和过期头
浏览器缓存相关的头有两个: Cache-Control 和 Expires 。至少要有一个来为您的站点启用浏览器缓存,因为这是浏览器决定在刷新资源之前应该保留多长时间的方式。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
确定这是否是导致利用浏览器缓存警告的原因的一个简单方法是查看每个资源的详细信息。在 Google PageSpeed Insights 第 5 版中,您会看到“无”列在缓存 TTL 下:

Cache TTL listings in Google PageSpeed Insights
作为一个方便的参考,以前版本的 Google PageSpeed Insights 在缺少标题时会显示一条“未指定到期时间”的消息:

Resources listed in the Leverage Browser Caching warning
当 Cache-Control 标头打开客户端缓存并设置资源的最大年龄时,Expires 标头用于指定资源不再有效的时间点。
您不一定需要添加两个,因为这可能是多余的。缓存控制是较新的方法,通常是推荐的方法。然而,一些 web 性能工具,如 GTmetrix ,仍然会检查 Expires 头。
如果你在 Kinsta 托管,你不必担心设置这些标题。我们所有的 Nginx 服务器已经包含了它们。那些使用内容交付网络(CDN) 的用户也应该已经应用了这些报头。
如果你使用的是不同的托管服务提供商,请务必在执行以下步骤之前备份你的网站,如编辑T5】。如果你不小心,htaccess 可能会破坏你的网站。
如何在 Nginx 中添加缓存控制头
**要在 Nginx 中添加缓存控制头,可以将以下内容添加到服务器的配置文件中:
location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
这告诉您的服务器,指定的文件类型至少在 30 天内不会更改。在刷新相关文件之前,它会将这些文件保存一段时间。
如何在 Apache 中添加缓存控制头
如果您有一个 Apache 服务器,您可以将下面的代码添加到您的 T2 中。htaccess 文件:
<filesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|svg|js|css|swf)$">
Header set Cache-Control "max-age=84600, public"
</filesMatch>
这段代码应该放在“#BEGIN WordPress”之前或“#END WordPress”之后。在这种情况下,缓存设置为在 84,600 秒后过期。
如何在 Nginx 中添加过期头
您可以通过将以下内容添加到您的服务器块中,在 Nginx 中添加 Expires 头。在此示例中,您可以看到如何根据文件类型指定不同的到期时间:
location ~* \.(jpg|jpeg|gif|png|svg)$ {
expires 365d;
}
location ~* \.(pdf|css|html|js|swf)$ {
expires 2d;
}
如何在 Apache 中添加 Expires 头
您可以在 Apache 中添加 Expires 头,方法是将以下内容添加到您的中。htaccess 文件:
## EXPIRES HEADER CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/svg "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES HEADER CACHING ##
然后,您可以通过再次运行 Google PageSpeed Insights 来检查您的标题,并查看警告是否仍然存在。
专家 WordPress 全天候支持,让网站问题迎刃而解。免费试用 kin sta。
2.利用浏览器缓存进行谷歌分析
具有讽刺意味的是, Google Analytics 有时是杠杆浏览器缓存警告和不完善的 PageSpeed 评分的原因。这是因为它的缓存过期时间很短,只有两个小时。这曾经是一个古老的警告:

Leverage Browser Caching warning for Google Analytics script
在 PageSpeed Insights 第 5 版中,此问题不再导致警告,但 Google Analytics 仍可能被列为未优化的资源:

Google PageSpeed Insights passed audits with Google Analytics script listing
您将无法使用 Cache-Control 或 Expires 标头更改此内容,因为该资源不在您的服务器上。然而,有一种方法可以通过本地托管脚本来利用浏览器缓存进行 Google Analytics。
但是请注意,谷歌不支持这种方法。
通过完整的分析优化套件利用浏览器缓存进行谷歌分析
如果你想解决上述问题,你可以使用金奎大·范·登·伯格开发的一个名为完整分析优化套件(CAOS) 的免费插件:

CAOS WordPress plugin
你可以从 WordPress 插件目录下载 Cao,或者在你的 WordPress 仪表盘的插件>添加新的下搜索。
在本地托管你的分析脚本的一些额外好处包括:它将你对谷歌的外部 HTTP 请求从两个减少到一个,并且它使你能够获得对文件缓存的完全控制。这意味着您可以像我们之前展示的那样使用缓存头。
要开始,安装插件,然后输入您的谷歌分析跟踪 ID。该插件为你的 WordPress 网站添加必要的谷歌分析跟踪代码,下载并保存 analytics.js 文件到你的服务器,并使用wp_cron()中的预定脚本保持更新。
我们还建议将其设置为在页脚中加载:

CAOS tracking code placement settings
请记住,CAOS 不能与其他 Google Analytics WordPress 插件一起使用。
T3】
通过 WP-Rocket 利用浏览器缓存进行谷歌分析
或者,你可以使用 WordPress 缓存插件 WP-Rocket 来实现同样的目标:

WP-Rocket WordPress plugin
这个插件的谷歌跟踪插件让你只需点击一个按钮就可以在本地托管你的分析脚本。只需在 WP-Rocket >附件下切换状态。
WP-Rocket 及其插件与其他谷歌分析插件兼容。作为一个高级工具,它的许可价格从每年 49 美元开始。
3.尽量减少使用第三方脚本
有时,谷歌分析脚本可能会给你的谷歌页面速度洞察评分带来问题,因为它托管在谷歌的服务器上,因此你无法控制缓存。
其他第三方脚本也是如此。如果你正在通过你的 WordPress 网站管理一项业务,很可能你有额外的第三方脚本运行到轨道转换、 A/B 测试等等。
这可能包括脚本,如脸书转换像素,疯狂鸡蛋,Hotjar,等等。不幸的是,除非您能找到一种方法在本地托管这些脚本,否则您无法控制它们。
脸书像素用户的一个选择是使用另一个 T2 WP-Rocket 插件。理想情况下,如果你想提高你的 Google PageSpeed 分数,你应该尽量少用第三方脚本。因此,对您的站点进行审核并删除任何运行它不必要的脚本可能是值得的。
摘要
虽然不是网站性能的决定性指标,Google PageSpeed Insights 仍然是一个不错的指标。通过解决显示在“使用高效缓存策略服务静态资产”下的警告来提高您的分数,有助于使您的网站更快,更便于访问者使用。
如果您在 Google PageSpeed Insights 中看到此警告,您可以通过以下方式解决:
- 添加 Cache-Control 或 Expires 标头。
- 利用浏览器缓存进行谷歌分析。
- 尽量减少第三方脚本的使用。
关于解决浏览器缓存问题,你还有其他的建议吗?请在下面的评论区告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。**
如何修复 LinkedIn 上的链接预览(帖子检查提示)
想在 LinkedIn 上分享的页面预览有问题?你可以使用 LinkedIn 调试器工具,即帖子检查器,在发帖前解决所有问题。
平台上有数以百万计的关键决策者,你最不想做的事情就是留下坏印象。
不要急于分享一个显示错误图片或标题的链接。这可能会大幅降低你的点击率和参与度,浪费你的帖子,并最终损害你的品牌。
相反,在使用 LinkedIn 帖子之前,按照我们的指南快速识别和修复任何问题。
LinkedIn 上的链接预览如何工作
如果您仍然没有解决您的问题,让我们进一步检查链接预览功能以及 LinkedIn 如何使用它。
每当你在 LinkedIn 上创建一个新帖子并包含一个链接时,链接预览会使用你的 URL 中页面上 meta 标签的数据创建一个预览。
例如,如果您从 Kinsta 主页共享一个链接,预览如下:

LinkedIn Link Preview
LinkedIn 使用一种叫做 Open Graph meta tags 的东西来获取与图片、标题和链接描述相关的数据。这些是你可以使用免费工具 Post Inspector 调试的。
LinkedIn 然后使用元数据中提供的图像和标题创建您在上面看到的框。
链接预览规格
- 标题:最多 150 个字符。
- 图像:图像被裁剪成 1.91:1 的比例和 1200(宽)x 627(高)像素。所以你需要一个兼容比例和宽度为 1200px+的图像。
- 最多 1300 个字符的可选注释。(这是你在链接外写的 LinkedIn 帖子。)
这些是 LinkedIn 上的有机帖子中包含的自动链接预览的规范。
如果你想知道在 LinkedIn 上分享图片的规格,或者想在你的广告中包含图片,请阅读我们关于社交图片尺寸的指南。
什么是帖子检查器(LinkedIn 调试器工具)?
虽然你可能没有明确搜索过帖子检查器的,但它是 LinkedIn 帖子唯一可用的调试工具。有时被称为 LinkedIn 调试器,这个免费工具解决了营销人员在 LinkedIn 上分享链接时面临的最大问题:生成正确的预览。
- 如果您更新了帖子或页面,您可以刷新预览(标题和图像)。
- 你还可以调试 LinkedIn 上的链接预览的任何问题,比如错误的图片或标题显示。

LinkedIn Post Inspector
其他涉及 LinkedIn 帖子检查工具的术语
以下术语实质上是同一工具的别名。
- LinkedIn Open Graph 调试器 : Open Graph meta 标签是 LinkedIn 用来创建共享帖子中链接预览的标签。这正是检查器让您深入了解并帮助您调试的内容。
- LinkedIn 共享 URL 验证器:在你选择在帖子中共享链接之前,检查器还会帮助你检查你的链接是否显示正确。
- LinkedIn 帖子链接检查器:它只是帖子检查器的另一个别名。
- LinkedIn 预览验证器:另一个别名,你可以用 inspector 轻松预览和验证任何页面的链接。
- LinkedIn checker 或 LinkedIn Debugger: 其他用于帖子检查器的术语。
如果你搜索他们中的任何一个,你实际上一直在寻找邮政检查员。
如何使用 LinkedIn 帖子检查器刷新 LinkedIn 缓存并对链接预览进行故障诊断
LinkedIn 在 2018 年推出了帖子检查员,以帮助使 LinkedIn 营销体验更好。
要立即清除和刷新页面的 LinkedIn 缓存版本,请键入 URL 并单击“inspect”按钮。

Post Inspector new URL
如果您只想刷新缓存,那么您已经完成了任务。就这么简单。
一种老方法是共享一个页面,在你的 URL 末尾添加一个类似于?a的虚假查询字符串,但这不会更新包含你的旧 URL 的帖子的预览。它只会刷新该特定共享链接的预览。
坚持岗位督察,是你的最佳选择,耗时三秒。如果您想调试结果并找出问题所在,请遵循接下来的几个步骤。
调试 LinkedIn 中的链接预览
在 LinkedIn 中调试你想要分享的页面的预览就像回答几个基本问题一样简单。
是否显示了正确的图像?如果没有,你必须改变你的文章或页面的元标签。
仅仅改变文章中照片的顺序是不够的(下一节将详细介绍如何解决这个问题)。

Post Inspector preview
全标题可读性强吗?检查标题是否被截断,或者你是否可以包含更多关于你的帖子的信息。
LinkedIn 允许标题中最多包含 150 个字符,这意味着如果你愿意,你可以使用一个长的描述性标题。

Link preview with a long title
你收到任何错误信息了吗? LinkedIn 会让你知道,例如,你是否没有包括它抓取并用于预览的所有 OG 元标签。

Post Inspector ingestion feedback
您可以在预览下方的“摄取反馈”部分找到错误消息和警告。
如果您的 URL 不包含任何错误,您将根本看不到该部分。除非它找到他们,否则它是隐藏的。
WordPress core 不包括你的帖子和页面的 OG 元数据。如果你没有一个支持开放图形标签的插件,你肯定会在这里看到错误消息。
这并不意味着您的安装或托管环境有任何问题。在大多数情况下,这仅仅意味着你需要安装正确的插件(稍后会详细介绍)。
URL 信息和重定向
LinkedIn 还显示关于 URL 的基本信息、其重定向状态以及 LinkedIn 上次存储它的时间。
如果你已经设置了一个 URL 重定向,这可能会影响你阅读时链接预览的显示。

Post Inspector URL info
抓取的元数据
您还可以检查所有抓取的元数据,确保它与您网站上的内容相匹配。

Scraped metadata
LinkedIn 抓取以下开放图形元标签:
- 标题(og:Title):页面、博客文章或视频的标题。
- 类型(og:type): 内容的类型,无论是文章、视频还是富媒体。
- Image(og:Image):预览缩略图在链接预览中为帖子显示。
- 描述(og:description): 页面、文章或视频的摘要。
- Author(作者):用于指定文章作者的常规 meta 标签。
但它在预览中仅显示以下元数据:
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
- 标题
- 图像
所以从技术上来说,你可以在你的文章和页面中只包含标题和图片标签。
但是有了像 WordPress 这样的 CMS,正确的插件会自动生成其他标签。
如何更改链接预览图像和标题
当一个链接第一次被共享时,当一个 URL 被多次共享时,该数据被缓存以使用更少的资源。
第二次共享链接(或在 LinkedIn 提要中生成)时,LinkedIn 会提取缓存的版本。除非您手动刷新它,否则它不会改变。
这就是为什么即使在更新一篇文章后,你仍然可能在预览中看到一个过时的标题或图像。
要改变你的 WordPress 文章和页面的预览图片,你需要安装一个插件来包含 Open Graph meta 标签。
OG meta 标签不包含在 WordPress 核心中。但是你可能已经安装了一个插件,在你不知情的情况下激活了它们。
如何在 WordPress 中获得 OG Meta 标签
你已经安装了激活 OG 元标签的插件吗?
一个简单的检查方法是打开任何页面(比如你的主页)的页面源代码,在源代码中搜索“og:”即可。

Page source
如果它显示 0 个结果,你需要安装一个插件来在你的页面上获得 OG 标签。
任何主要的 SEO 插件都会提供这种能力,所以他们更愿意为 OG 标签安装一个单独的插件。
如果您还没有这些插件,请遵循以下步骤:
- 搜索并安装 Yoast SEO 。
- 安装完成后,点击同一个按钮激活插件(文本会改变)。
- 然后前往菜单中新 SEO 项目下的社交设置。
- 然后,单击脸书选项卡,并切换按钮以启用打开图表元数据。

Yoast Facebook settings
不过,别担心。标签名称可能暗示了这一点,但是这些设置并不特定于脸书。2022 年,所有主要的社交媒体网站都在社交帖子中使用 OG 元数据进行预览,包括 LinkedIn、 Twitter 、 Pinterest 等等。
如果您的帖子或页面中没有图像,您也可以设置使用默认图像。
厌倦了 WordPress 的问题和缓慢的主机?我们提供世界一流的支持,由 WordPress 专家提供 24/7 服务和超快的服务器。查看我们的计划
如果你的问题是你的 LinkedIn 帖子没有包括开放图表数据,你可以跳到前面检查你的社交预览。
如何在 OG 标签中获得正确的图像和文本
Yoast SEO 成功安装后,您现在可以为每个帖子设置单独的设置。
默认情况下,插件使用 WordPress 数据生成所有帖子的标签。
- og:image 标签与你的特色图片相同,或者如果没有特色图片,则与文章或页面中包含的第一张图片相同。
- 标签与 WordPress 中文章或页面的标题相同。
- 作者等于帖子作者。
要编辑这些标签,你必须编辑有问题的文章或页面。然后,用右上角的按钮切换 Yoast 菜单,点击“脸书预览”链接。

Yoast’s Facebook preview link
你现在可以开始编辑“脸书图像”和“脸书标题”字段。
这将改变帖子和 LinkedIn 链接预览各自的 OG 标签。

Yoast’s Facebook OG tag settings
例如,我们可能希望包含类似图表的东西,而不仅仅是简单的 LinkedIn 徽标,以便在社交媒体上共享。
在帖子中,我们强调了这张对比有机流量和赞助流量的图表,它显示了有机流量和付费流量随着时间推移的影响。

LinkedIn organic vs sponsored
单击“选择图像”按钮,从您的媒体库中选择相关图像。
如果是您想要编辑的标题,您也需要在这个阶段更改标题。你甚至可以使用像文章标题和类别这样的变量来设置它。
您还应该添加描述。LinkedIn 抓取了它,但没有将其包括在预览中(在桌面或移动应用程序上),但一些社交媒体应用程序确实实现了它。

New OG metadata
正确填写字段后,点击“返回到您的岗位”按钮。
最后,更新帖子以使更改生效。
现在你已经准备好进入下一步了。
刷新您的页面(或站点)缓存
你使用一个 WordPress 缓存插件吗?或者也许你使用一个高级的 WordPress 主机,比如 Kinsta,它为你处理 WordPress 缓存?
无论哪种情况,您都需要清除并刷新缓存的页面(或您的整个缓存)以使更改影响您的实时站点。
刷新你的 LinkedIn 缓存,检查新图片是否显示
清空缓存后,是时候返回帖子检查器刷新 LinkedIn 的帖子缓存,看看你的更改是否有效。
如果您仍然在单独的浏览器选项卡中打开它,只需单击刷新按钮。如果没有,返回到检查器,复制并粘贴您的页面 URL,并运行另一个检查。
这一次你应该会看到新的图像和标题。

New link preview image
如果它确实显示了新的图片和标题,这意味着任何 LinkedIn 发布到相同 URL 的帖子看起来都是一样的。您已成功更改了链接预览。
如果这是你第一次在帖子中添加 OG meta 标签,你应该清洗并重复所有重要的帖子和页面。
如何用 HTML 改变图片和标题的开放图形元标签
你有一个静态 HTML 网站或者使用一个不支持 OG 标签的 CMS 吗?修复单个页面的 LinkedIn 预览很容易。
只需在您想要编辑的页面的 head 标签之间添加以下字段。因此,打开最好的 HTML 编辑器之一并添加这几行:

Open Graph meta tags
在那之后,确保你保存了文档并且把页面的新版本上传到你的服务器上。
摘要
当你在之后向你的 LinkedIn 推广一个更新的页面时,你最不希望的就是帖子预览来抵消你的信息。错误的图片会传递错误的信息,降低你链接的点击率,降低你有机活动的有效性。
多亏了 LinkedIn Post Inspector 工具,你可以发现任何问题并及时解决。如果你使用带有右边插件的 WordPress ,你只需要设置一次,然后忘记它,因为它将适用于你将来创建的每个页面(和链接)。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
利用 LinkedIn 取得营销成功的 8 种方法
早些年,LinkedIn 只是你的在线通讯录——一个你可以跟踪同事、业务关系和你网络中其他人的地方。今天,在它成立近 15 年后,它的地位更高了。
LinkedIn 于 2016 年被微软收购,现在是一个提供专业服务的市场,一个寻找新员工的地方,一个发布和展示你最好内容的地方,最重要的是,一个向 T4 推销你的企业的地方。
目前,LinkedIn 在全球拥有超过 5 . 62 亿用户,遍布 200 多个国家和地区。这些用户已经准备好了,等着你去利用。
LinkedIn 用户也登录、浏览并主动查看网站。最近的一项研究调查了美国移动用户使用 LinkedIn 的频率。截至 2017 年第二季度, 48%的用户每周查看网站几次或更多。

Frequency of LinkedIn mobile users (Image source: Statista)
在一项涉及 198 家 B2B 和 B2C 企业的所有社交媒体网站的实验中,LinkedIn 的访客到潜在客户转化率最高。 LinkedIn 实现了 2.74% 的转化率,而 Twitter (.69%)和脸书(. 77%)落后。

LinkedIn lead generation (Image source: HubSpot)
但是 LinkedIn 和其他社交媒体网站相比如何呢?尽管活跃用户比脸书和 Twitter 少,但在将访问者转化为潜在客户方面,它仍然遥遥领先。许多人在 LinkedIn 上看到了超高的管理水平。
我有一个可耻的自白:我已经成为一个定期 LinkedIn 海报。
那里的订婚是不真实的。我得到了合法的投资机会,他们看重我的工作。
——Joel klettke(@ jolklettke)2018 年 7 月 12 日
令人兴奋的 LinkedIn 统计数据和事实(2022)
脸书可能是当今世界上最大的社交网站,但 LinkedIn 为其用户提供支持的时间更长。更重要的是,对于那些寻求社交和发展商业关系的人来说, LinkedIn 用户知道这个平台是“专业社交网站”
在一个技术快速变化的世界里,这家成立于 2002 年的科技公司的长寿是对其在社交媒体领域的实用性和主导地位的致敬。

Google Search Trends “LinkedIn”
事实上,自 2010 年以来,“LinkedIn”一词的搜索兴趣增加了 295%以上。而且,当谈到有趣的 LinkedIn 统计数据和 LinkedIn 事实时,有惊人的丰富性。
挖掘 LinkedIn 的人口统计数据
LinkedIn 现在拥有超过 8 . 75 亿会员,注册公司超过 5800 万家。

在频繁使用 LinkedIn 平台的用户中,40%的人每天都会访问该平台,每月超过 10 亿次互动。然而,LinkedIn 很少使用,所以你只有几分钟的时间来产生影响。用户每月在 LinkedIn 上只花大约 17 分钟。
*根据皮尤研究中心的 2021 年社交媒体使用研究,LinkedIn 仍然受到大学生的欢迎。对这些 LinkedIn 统计数据的进一步研究显示,在美国,超过 50%拥有学士或高等学位的成年人是 LinkedIn 的用户,而该网站只吸引了 10%教育程度不超过高中的人。
然而,越来越多的趋势表明,Linkedin 上发布的不要求申请人拥有学位的工作岗位数量有所增加。Linkedin 的研究显示,这占了该平台工作岗位的 20%,高于前一年的 15%,也就是 33%。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。

Growing trend in jobs that don’t require a degree
此外, 44%的 LinkedIn 用户每年收入超过 75,000 美元,高于美国全国中位数。.)
尽管美国拥有最多的 LinkedIn 用户,达到 1.94 亿,但超过 78%的 LinkedIn 用户来自美国以外。
从性别来看,LinkedIn 更受男性欢迎,男性占其用户群的 57%(截至 2022 年 1 月)。有趣的是,千禧一代占 LinkedIn 用户群的 59%以上,8700 万千禧一代中有 1100 万人在决策层(T3)。
LinkedIn 收入:财务事实
微软认识到 LinkedIn 的价值,在 2016 年以 262 亿美元收购了该公司。然而,与许多其他依赖广告的社交媒体平台不同,LinkedIn 的服务是用户愿意付费的。
Linkedin 目前的年收入超过 138 亿美元,与 2021 年相比,同比增长 34%。这标志着在已经令人印象深刻的 5 年中重要的一年。

LinkedIn Annual Revenue (Image source: Statista)
总共有 39%的 LinkedIn 用户支付 LinkedIn Premium,它有四个价格等级:
- 职业:每月 39.99 美元(按年计费,每月 26.99 美元)
- 业务:69.99 美元/月(55.99 美元/月按年计费)
- 销售导航核心:99.99 美元/月(79.99 美元/月按年计费)
- 招聘简装版(招聘):199.95 美元/月(169.95 美元/月【按年计费的 T0】)
*未计入月定价的销售税

职业规划最适合找工作的人。它可以让你每月访问五封电子邮件和点播视频,还可以查看谁查看了你的个人资料,你出现了多少次搜索,以及发布的职位的其他信息(包括工资)。
其他层基本上包括相同的基本功能,但又更进了一两步。商业计划给你更多的信息,关于企业和无限的人搜索;Sales Navigator Core 为您提供了高级搜索过滤器、对不同销售工具的访问,以及在用户资料上做笔记的能力;Recruiter Lite 为您提供了引导搜索智能建议和更多以招聘人员为中心的工具。
无论你购买哪个高级账户,你都将获得改进的指标和实现 LinkedIn 增长的各种方式。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
联系 LinkedIn 支持
LinkedIn 帮助中心包含资源、故障排除技巧和有用的信息,帮助你使用他们的产品。如果你找不到你要找的东西,你可以通过提交支持案例联系 LinkedIn 的客户服务代表,但是你必须登录你的 LinkedIn 账户才能这样做。
有 LinkedIn 客服电话吗?
不,LinkedIn 目前不提供客户支持电话号码。然而,有许多网站声称提供付费的 LinkedIn 电话支持,但这些网站与 LinkedIn 没有任何关系。
在 LinkedIn 上挖掘潜在客户
LinkedIn 是发现潜在客户的一个特别好的来源。Hubspot 发现 LinkedIn 比脸书和 Twitter 在挖掘潜在客户方面的效率高出 277%。

LinkedIn lead generation (Image source: HubSpot)
有鉴于此,毫不奇怪,79%的营销人员认为 LinkedIn 是一个非常好的潜在客户来源,43%的营销人员说他们已经从 LinkedIn 获得了至少一个客户。

B2B LinkedIn leads (Image source: LinkedIn)
对于 B2B 营销人员来说,这一数字还在增加,他们报告称,80%的社交媒体线索来自 LinkedIn,40%的人认为 LinkedIn 是他们在 T2 获得高质量线索的最有效渠道。
为招聘加分
LinkedIn 用户在平台上活跃的另一个主要原因是为了招聘工作。网站上列出了 5800 多万家公司,每周有 5200 万人在 LinkedIn 上搜索工作,所以毫不奇怪,T2 77%的招聘人员经常使用 LinkedIn。
事实上,一项研究发现,1.22 亿人通过 LinkedIn 接受了面试,其中 3550 万人被他们在该网站上联系的人雇用。所以毫不奇怪,每秒钟有 101 份工作申请通过 LinkedIn 提交,每分钟有 8 个人被雇佣。
从 2020 年 3 月到 12 月,LinkedIn 在美国增加的远程职位发布数量增长了 6 倍,超过 30 万个远程职位。
对于招聘人员来说,LinkedIn 的一个很好的统计数据是,通过该网站招聘的员工在前 6 个月内离开公司的可能性降低了 40%。
根据 LinkedIn 的数据,女性现在占公司领导层的近 42%,在过去五年中,担任技术领导职务的女性增长了 79%。
LinkedIn 个人资料优化入门
由于 LinkedIn 能够识别布尔运算符,并根据公司、经验年限、职能和资历水平等指标过滤结果,该平台在帮助人们建立重要的业务联系方面轻松超越了竞争对手。
然而,尽管有先进的搜索功能,你仍然希望优化你的 LinkedIn 个人资料(建议阅读:如何在 LinkedIn 上创建公司页面)。做到这一点的第一步是添加一张专业照片,这平均会让用户获得比其他类型的个人资料图片多 14 倍的浏览量。
为了让你的连接请求增加五倍,确保你的列出了你当前的位置。此外,不要忘记列出至少五项相关技能,因为这样做会增加你的个人资料被发现和有人给你发消息的几率,比你不发多 31 倍。
How To Tell Your #workstory from LinkedIn
关于新功能的有趣 LinkedIn 统计
微软介入后,LinkedIn 推出了几个新功能,比如展示页面。业务页面的这种扩展旨在突出您公司的业务单位或计划。
LinkedIn 还推出了一款日历聊天机器人,它可以同步两个 LinkedIn 用户的日历,这样他们就可以见面了。这对于想要与不同时区的人联系的人来说特别有帮助。尽管聊天机器人功能尚未在 LinkedIn 上实现,但人工智能技术已经以智能回复或建议回复的形式进入了该平台。

LinkedIn Scheduler (Image source: LinkedIn)
此外,LinkedIn 还推出了消息服务,允许用户以聊天的形式发送电子邮件,而不是电子邮件格式,这样可以减少过多的点击。该功能还包括赞助消息。
其他新功能包括:
- 将向上滑动链接添加到 LinkedIn 故事的能力,让你的内容更加清晰可见。
-
招聘和#开放工作框架可以应用到您的个人资料图片,让潜在的候选人或雇主知道您的当前状态。
- 评论中的标签现在被 LinkedIn 索引,这意味着当你搜索标签时,你将会看到包含评论的结果。这使得标签的使用更加重要!
内容创作者利用 LinkedIn
LinkedIn 允许你分享不同类型的内容。可以在你的个人资料或 LinkedIn Pulse 上发布的文章、你的网站链接、幻灯片和视频是 LinkedIn 用户发布的最受欢迎的内容类型。
2019 年,LinkedIn 会话同比增长 25%,观看了 3580 亿次更新。但是每周只有大约 300 万用户分享内容。这意味着 LinkedIn 每月 2.6 亿用户中只有约 1%的人分享帖子,而这 300 万左右的用户获得了 90 亿次展示。
LinkedIn 为 B2B 网站带来了 46%的社交流量,被认为是 T2 最可靠的内容来源。所以,毫不奇怪 98%的内容营销人员使用 LinkedIn 进行内容营销,尤其是 B2B 营销和销售线索生成。
OkDork 的一项研究分析了 3000 多篇 LinkedIn 帖子,发现“如何做”和列表帖子表现最好,尤其是那些标题有 40-49 个字符的帖子。此外,它发现有五个标题的帖子有最多的浏览量。它还揭示了长格式的内容(1900-2000 字)表现最好,以及有八个图像的内容。
确保你发送的 LinkedIn 是一个快速可靠的网站。免费试用 kin sta。
只是不要让我们开始使用“bro try”背后的 LinkedIn 统计数据——多个单行句子,写起来可能和读起来一样烦人。

LinkedIn broetry
支持图片可以提高帖子受欢迎程度的观点是,包含照片可以提高 98%的评论率。一次又一次,我们看到一个视觉内容战略刚刚奏效。
现在,一个有趣的事实是,你可能无法梳理出你自己的发布结果,即周四发布的内容往往表现最好。
值得庆幸的是,你不必出名就能让你的内容表现出色。看看 LinkedIn 在营销&广告类别中的2020 年十大声音就清楚了:

Top 10 LinkedIn Influencers 2020: Marketing & Advertising
LinkedIn 视频是一个胜利
马克·扎克伯格宣称视频是‘下一个大趋势’,像脸书、 Instagram 、 Twitter 、 YouTube 和 Snapchat 这样的平台让用户上传视频内容变得更加容易。
LinkedIn 不会被落下,特别是因为人们发现,如果内容以视频和书面形式出现, 59%的高管表示他们会选择通过视频来消费。

Video consumption on LinkedIn (Image source: MWP Digital Media)
LinkedIn 用户一度只能嵌入其他来源的视频内容。然而,LinkedIn 现在允许通过移动应用程序上传原生视频。这让 LinkedIn 用户看到了企业更“人性化”的一面,让企业背后的品牌更加平易近人。
事实上,LinkedIn 视频被评为最有效的视频营销平台之一,尽管只有 28%的营销人员同意。这 28%可能看起来很弱,但鉴于 LinkedIn 视频只是在 2017 年 8 月向用户推出,那么多人同意已经了,这实际上是相当令人印象深刻的。

LinkedIn statistics on video (Image source: eMarketer)
从那以后,LinkedIn 引入了视频过滤器,以及作为赞助内容的一部分的原生视频广告。这使得企业能够分享他们自己的视频内容。在此之前,视频内容仅适用于个人会员用户帐户。
视频广告与其他广告的区别在于,你可以从许多目标选项中进行选择,如职位、位置和公司规模。您还可以应用高级功能,如再营销和匹配受众集成。
自从赞助内容的测试版推出以来,LinkedIn 报告称,用户观看视频的时间是观看静态内容的三倍。在 LinkedIn 视频的限量版或测试版发布期间,人们发现视频的分享量是任何其他类型内容的20 倍。
最后的想法:令人兴奋的 LinkedIn 统计数据和事实
当谈到一些支持社交媒体平台将继续占据主导地位的观点的 LinkedIn 统计数据时,你有正确的事实吗?
从大约 300 万用户每月 90 亿次的点击量,到意识到甚至 LinkedIn 的统计数据也支持扎克伯格的声明,即视频是下一个大趋势,很明显,关于谁在使用这个平台以及他们为什么这样做,有很多东西需要了解。
你有什么有趣的 LinkedIn 数据可以分享吗?把它们贴在下面的评论里吧!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。*
您应该知道的 40 个最常用的 Linux 命令
在撰写本文时,Linux 在桌面上的全球市场份额为 2.68% ,但超过 90%的云基础设施和托管服务都运行在这个操作系统上。仅仅因为这个原因,熟悉流行的 Linux 命令是至关重要的。
根据 2020 StackOverflow 调查,Linux 是专业开发人员使用最多的操作系统,拥有令人印象深刻的 55.9%的市场份额。这不仅仅是巧合。Linux 是免费和开源的,比其竞争对手有更好的安全性,并拥有强大的命令行,使开发人员和高级用户更有效。你还可以使用一个强大的包管理器和一些开发工具,比如 DevKinsta 。
无论您是经验丰富的系统管理员还是 Linux 新手,您都可以利用本指南。
我们开始吧!
什么是 Linux 命令?
Linux 命令是在命令行上运行的程序或实用程序。一个命令行是一个接受文本行并把它们处理成你的计算机指令的界面。
任何图形用户界面(GUI)都只是命令行程序的抽象。例如,当你点击“X”关闭一个窗口时,在这个动作后面有一个命令在运行。
一个标志是我们传递选项给你运行的命令的一种方式。大多数 Linux 命令都有一个帮助页面,我们可以用标志-h调用它。大多数时候,标志是可选的。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
一个变量或参数是我们给一个命令的输入,这样它就能正确运行。在大多数情况下,参数是文件路径,但它可以是您在终端中键入的任何内容。
您可以使用连字符(-)和双连字符(--)调用标志,而参数的执行取决于您将它们传递给函数的顺序。
您知道 90%的云基础设施和托管服务都使用 Linux 吗?🤯仅仅因为这个原因,熟悉流行的 Linux 命令是至关重要的。⬇️ 点击推文
最常用的 Linux 命令
在进入最常用的 Linux 命令之前,确保启动一个终端。在大多数 Linux 发行版中,您会使用Ctrl + Alt + T来实现这一点。如果这不起作用,请在应用程序面板中搜索“终端”
The Linux terminal emulator.
现在让我们深入研究 40 个最常用的 Linux 命令。其中许多都有多个选项,你可以把它们串起来,所以请务必查看命令手册。
1. ls 命令
ls可能是每个 Linux 用户在终端上输入的第一个命令。它允许您列出所需目录(默认为当前目录)的内容,包括文件和其他嵌套目录。
ls
它有许多选项,所以使用--help标志获得一些帮助可能会很好。这个标志返回所有可以和 ls 一起使用的标志。
例如,要给ls命令的输出着色,可以使用下面的代码:
ls --color=auto
The colorized ls command.
现在,ls命令输出是彩色的,您可以体会到目录和文件之间的区别。
但是用颜色标志键入ls将是低效的;这就是我们使用alias命令的原因。
2. alias 命令
alias命令允许您在 shell 会话中定义临时别名。创建别名时,您指示您的 shell 用一系列命令替换一个单词。
例如,要将ls设置为有颜色,而不是每次都键入--color标志,您可以使用:
alias ls="ls --color=auto"
如您所见,alias命令接受一个键值对参数:alias NAME="VALUE"。请注意,该值必须用引号括起来。
如果想列出 shell 会话中的所有别名,可以运行不带参数的alias命令。
alias
The alias command.
3. unalias 命令
顾名思义,unalias命令旨在从已经定义的别名中删除一个alias。要删除以前的ls别名,可以使用:
unalias ls
4. pwd 命令
pwd命令代表“打印工作目录”,它输出你所在目录的绝对路径。例如,如果您的用户名是“john”,并且您在您的文档目录中,那么它的绝对路径将是:/home/john/Documents。
要使用它,只需在终端中键入pwd:
pwd
# My result: /home/kinsta/Documents/linux-commands
5. cd 命令
与ls一样,cd命令非常受欢迎。它指的是“changedI 目录”,顾名思义,它把你切换到你试图访问的目录。
例如,如果您在 Documents 目录中,并试图访问其中一个名为 Videos 的子文件夹,您可以通过键入:
cd Videos
您还可以提供文件夹的绝对路径:
cd /home/kinsta/Documents/Videos
使用cd命令时,有一些技巧可以帮你节省很多时间:
1.前往个人文件夹
cd
2.向上移动一级
cd ..
3.返回到上一个目录
cd -
6. cp 命令
在 Linux 终端中直接复制文件和文件夹非常容易,有时它可以取代传统的文件管理器。
要使用cp命令,只需键入它以及源文件和目标文件:
cp file_to_copy.txt new_file.txt
还可以使用递归标志复制整个目录:
cp -r dir_to_copy/ new_copy_dir/
请记住,在 Linux 中,文件夹以正斜杠(/)结尾。
7. rm 命令
既然你已经知道如何复制文件,知道如何删除它们会很有帮助。
您可以使用rm命令删除文件和目录。不过,使用它时要小心,因为很难(但不是不可能)恢复以这种方式删除的文件。
要删除常规文件,您可以键入:
rm file_to_copy.txt
如果你想删除一个空目录,你可以使用递归(-r)标志:
rm -r dir_to_remove/
另一方面,要删除包含内容的目录,需要使用 force (-f)和递归标志:
rm -rf dir_with_content_to_remove/
小心这一点——误用这两个标志可以抹去一整天的工作!
8. mv 命令
您可以使用mv命令在文件系统中移动(或重命名)文件和目录。
要使用该命令,您需要在源文件和目标文件中键入其名称:
mv source_file destination_folder/
mv command_list.txt commands/
要利用绝对路径,您可以使用:
mv /home/kinsta/BestMoviesOfAllTime ./
…其中./是您当前所在的目录。
您还可以使用mv来重命名文件,同时将它们保存在同一个目录中:
mv old_file.txt new_named_file.txt
9. mkdir 命令
要在 shell 中创建文件夹,可以使用mkdir命令。只需指定新文件夹的名称,确保它不存在,就可以开始了。
例如,要创建一个目录来保存您的所有图像,只需键入:
mkdir images/
要使用简单的命令创建子目录,请使用 parent ( -p)标志:
mkdir -p movies/2004/
10. man 命令
另一个重要的 Linux 命令是man。它显示任何其他命令的手册页(只要它有一个)。
要查看mkdir命令的手册页,输入:
man mkdir
您甚至可以参考man手册页:
man man
The manual page of “man.”
11. touch 命令
touch命令允许您更新指定文件的访问和修改时间。
例如,我有一个旧文件,最后一次修改是在 4 月 12 日:
Old date.
要将其修改日期更改为当前时间,我们需要使用-m 标志:
touch -m old_file
现在日期与今天的日期相匹配(在撰写本文时是 8 月 8 日)。
New date
尽管如此,大多数时候,您不会使用touch来修改文件日期,而是创建新的空文件:
touch new_file_name
12. chmod 命令
通过chmod命令,您可以快速更改文件(权限)的模式。它有很多选项可用。
文件可以拥有的基本权限包括:
- r(读取)
- w(写)
- x(执行)
chmod最常见的用例之一是让用户可以执行一个文件。为此,请键入chmod和标志+x,后跟您想要修改权限的文件:
chmod +x script
您用它来使脚本可执行,允许您通过使用./符号直接运行它们。
13. ./ 命令
也许./符号本身不是一个命令,但是在这个列表中值得一提。它让您的 shell 直接从终端运行安装在您系统中的任何解释程序的可执行文件。不再双击图形文件管理器中的文件!
例如,使用这个命令,您可以运行一个 Python 脚本或者一个只在中可用的程序。跑格式,像 XAMPP 。当运行一个可执行文件时,确保它有可执行文件(x)权限,可以用chmod命令修改。
下面是一个简单的 Python 脚本,以及我们如何用./符号运行它:
#! /usr/bin/python3
# filename: script
for i in range(20):
print(f"This is a cool script {i}")
下面是我们如何将脚本转换成可执行文件并运行它:
chmod +x script
./script
14. exit 命令
exit命令正如其名所示:使用它,您可以结束一个 shell 会话,并且在大多数情况下,自动关闭正在使用的终端:
exit
15. sudo 命令
这个命令代表“超级用户 do”,它允许您在运行特定命令时充当超级用户或根用户。这就是 Linux 如何保护自己,防止用户意外修改机器的文件系统或安装不适当的包。
Sudo 通常用于安装软件或编辑用户主目录之外的文件:
sudo apt install gimp
sudo `cd` /root/
在运行您键入的命令之前,它会要求您输入管理员的密码。
16. shutdown 命令
正如你可能猜到的,shutdown命令让你关闭你的机器。但是,它也可以用来停止和重新启动它。
要立即关闭计算机电源(默认为一分钟),请键入:
shutdown now
您还可以计划以 24 小时制关闭系统:
shutdown 20:40
要取消之前的shutdown呼叫,您可以使用-c标志:
shutdown -c
17. htop 命令
htop是一个交互式流程查看器,可让您直接从终端管理机器资源。在大多数情况下,它不是默认安装的,所以请确保在它的下载页面上阅读更多关于它的信息。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
htop
The “htop” interface.
18. unzip 命令
unzip 命令允许你提取一个的内容。从终端压缩文件。同样,默认情况下这个包可能不会被安装,所以一定要用你的包管理器来安装它。
在这里,我们正在解压一个充满图像的. zip 文件:
unzip images.zip
19.apt、yum、pacman命令
无论您使用的是哪一个 Linux 发行版,您都可能使用软件包管理器来安装、更新和删除您每天使用的软件。
您可以通过命令行访问这些包管理器,您可以根据您的机器运行的发行版来使用其中的一个。
下面的例子将安装 GIMP ,这是一个通常在大多数包管理器中可用的免费开源软件:
1.基于 debian(Ubuntu,Linux Mint)
sudo apt install gimp
2.基于红帽(Fedora,CentOS)
sudo yum install gimp
3.基于 arch(Manjaro,Arco Linux)
sudo pacman -S gimp
20. echo 命令
echo命令在终端中显示定义的文本——就这么简单:
echo "Cool message"
The echo command
它的主要用途是打印这些消息中的环境变量:
echo "Hey $USER"
# Hey kinsta
21. cat 命令
Cat(concatenate 的缩写)可让您直接从终端创建、查看和连接文件。它主要用于在不打开图形文本编辑器的情况下预览文件:
cat long_text_file.txt
The cat command.
22. ps 命令
使用ps,您可以查看当前 shell 会话正在运行的进程。它打印出关于你正在运行的程序的有用信息,比如进程 ID、TTY(电传打字机)、时间和命令名。
ps
The ps command.
如果你想要更具互动性的东西,你可以使用htop。
23. kill 命令
当一个程序没有反应的时候是很烦人的,你无论如何都无法关闭它。幸运的是,kill命令解决了这类问题。
简单地说,kill向一个进程发送一个 TERM 或 kill 信号来终止它。
您可以通过输入 PID(进程 ID)或程序的二进制名称来终止进程:
kill 533494
kill firefox
小心使用这个命令——使用kill,您可能会意外删除您一直在做的工作。
24. ping 命令
ping是最流行的网络终端实用程序,用于测试网络连接。ping有很多选项,但在大多数情况下,你会用它来请求一个域名或 IP 地址:
ping google.com
ping 8.8.8.8
25. vim 命令
是一个免费的开源终端文本编辑器,从 90 年代就开始使用了。它允许你使用有效的按键来编辑纯文本文件。
有些人认为它很难使用— 退出 Vim 是最常见的 StackOverflow 问题之一——但是一旦你习惯了,它就会成为你在命令行中最好的盟友。
要启动 Vim,只需输入:
所有的 Kinsta 托管计划都包括来自我们资深 WordPress 开发者和工程师的 24/7 支持。与支持我们财富 500 强客户的同一个团队聊天。查看我们的计划!
vim
The vim text editor.
26. history 命令
如果你正在努力记住一个命令,history就派上用场了。此命令显示您过去使用过的命令的枚举列表:
history
The history command.
27. passwd 命令
passwd允许您更改用户账户的密码。首先,它会提示您输入当前密码,然后要求您输入新密码并进行确认。
它类似于您在其他地方看到的任何其他密码更改,但在这种情况下,它直接出现在您的终端中:
passwd
The passwd command
使用它时要小心——你不会想弄乱你的用户密码的!
28. which 命令
which命令输出 shell 命令的完整路径。如果它不能识别给定的命令,它将抛出一个错误。
例如,我们可以用它来检查 Python 和 Brave web 浏览器的二进制路径:
which python
# /usr/bin/python
which brave
# /usr/bin/brave
29. shred 命令
如果你曾经想让一个文件几乎不可能被恢复,shred可以帮你完成这个任务。该命令会重复覆盖文件的内容,因此,给定的文件变得极难恢复。
这里有一个内容很少的文件:
File to shred.
现在,让我们通过键入以下命令让shred完成它的工作:
shred file_to_shred.txt
Overwritten content.
如果你想马上删除文件,你可以使用-u标志:
shred -u file_to_shred.txt
30. less 命令
less(与相反,更多的)是一个让你向前和向后检查文件的程序:
less large_text_file.txt
The less command.
关于less的巧妙之处在于,它在其界面中包含了更多的和vim命令。如果你需要比cat更具互动性的东西,less是个不错的选择。
31. tail 命令
类似于cat , tail打印文件的内容,但有一个主要的警告:它只输出最后几行。默认情况下,它会打印最后 10 行,但是您可以使用-n来修改这个数字。
例如,要打印一个大文本文件的最后几行,您可以使用:
tail long.txt
The tail command.
要仅查看最后四行:
tail -n 4 long.txt
tail four lines.
32. head 命令
这是对tail命令的补充。head输出一个文本文件的前 10 行,但是您可以用-n标志设置想要显示的任意行数:
head long.txt
head -n 5 long.txt
The head command.
33. grep 命令
Grep 是处理文本文件最强大的工具之一。它搜索匹配一个正则表达式的行并打印它们:
grep "linux" long.txt
The grep command.
您可以使用-c标志来计算图案重复的次数:
grep -c "linux" long.txt
# 2
34. whoami 命令
whoami命令(我是谁的缩写)显示当前使用的用户名:
whoami
# kinsta
使用echo和环境变量$USER 会得到相同的结果:
echo $USER
# kinsta
35. whatis 命令
whatis打印任何其他命令的单行描述,使其成为有用的参考:
whatis python
# python (1) - an interpreted, interactive, object-oriented programming language
whatis whatis
# whatis (1) - display one-line manual page descriptions
36. wc 命令
Wc 代表“字数”,顾名思义,它返回文本文件中的字数:
wc long.txt
# 37 207 1000 long.txt
让我们分析一下这个命令的输出:
- 37 行
- 207 字
- 1000 字节大小
- 文件的名称(long.txt)
如果你只需要字数,使用-w标志:
wc -w long.txt
207 long.txt
37. uname 命令
uname(“Unix 名称”的缩写)打印可操作的系统信息,这在您了解当前的 Linux 版本时会很方便。
大多数情况下,您将使用-a(–all)标志,因为默认输出并不那么有用:
uname
# Linux
uname -a
# Linux kinstamanjaro 5.4.138-1-MANJARO #1 SMP PREEMPT Thu Aug 5 12:15:21 UTC 2021 x86_64 GNU/Linux
38. neofetch 命令
Neofetch 是一个 CLI(命令行界面)工具,它在 Linux 发行版的 ASCII 标志旁边显示关于您的系统的信息,如内核版本、外壳和硬件:
neofetch
The neofetch command.
在大多数机器上,这个命令在默认情况下是不可用的,所以请确保首先用您的软件包管理器安装它。
39. find 命令
find命令根据正则表达式在目录层次结构中搜索文件。要使用它,请遵循以下语法:
find [flags] [path] -name [expression]
要在当前目录中搜索名为 long.txt 的文件,请输入:
find `./` -name "long.txt" # ./long.txt
搜索以结尾的文件。py (Python)扩展,可以使用以下命令:
find `./` -type f -name "*.py" ./get_keys.py ./github_automation.py ./binarysearch.py
40. wget 命令
wget(万维网获取)是一个从互联网上检索内容的实用程序。那里有最大的旗帜收藏。
下面是你如何从一个 GitHub repo 下载 Python 文件:
wget https://raw.githubusercontent.com/DaniDiazTech/Object-Oriented-Programming-in-Python/main/object_oriented_programming/cookies.py
Linux 命令备忘单
每当你想快速参考,只需查看下表:
| 命令 | 使用 |
|---|---|
ls |
列出目录的内容 |
alias |
定义或显示别名 |
unalias |
删除alias定义 |
pwd |
打印工作目录 |
cd |
更改目录 |
cp |
复制文件和目录 |
rm |
删除文件和目录 |
mv |
移动(重命名)文件和目录 |
mkdir |
创建目录 |
man |
显示其他命令的手册页 |
touch |
创建空文件 |
chmod |
更改文件权限 |
./ |
运行可执行文件 |
exit |
退出当前 shell 会话 |
sudo |
以超级用户身份执行命令 |
shutdown |
关闭您的机器 |
htop |
显示进程和资源信息 |
unzip |
提取压缩的 ZIP 文件 |
apt、yum、pacman |
包管理器 |
echo |
显示文本行 |
cat |
打印文件内容 |
ps |
报告外壳进程状态 |
kill |
终止程序 |
ping |
测试网络连接 |
vim |
高效的文本编辑 |
history |
显示以前命令的列表 |
passwd |
更改用户密码 |
which |
返回程序的完整二进制路径 |
shred |
覆盖文件以隐藏其内容 |
less |
交互式检查文件 |
tail |
显示文件的最后几行 |
head |
显示文件的第一行 |
grep |
打印与图案匹配的线条 |
whoami |
输出用户名 |
whatis |
显示单行描述 |
wc |
字数统计文件 |
uname |
显示操作系统信息 |
neofetch |
显示操作系统和硬件信息 |
find |
搜索符合某种模式的文件 |
wget |
从互联网上检索文件 |
截至 2020 年,Linux 是专业开发人员使用最多的操作系统😲通过这篇文章,学习 40 个最常用的命令,并开始利用这个强大的系统🚀
摘要
学习 Linux 可能需要一些时间,但是一旦你掌握了它的一些工具,它就会成为你最好的盟友,你不会后悔选择它作为你的日常驱动。
Linux 的一个显著特点是,即使你是一个有经验的用户,你也不会停止学习使用它来提高效率。
还有很多更有用的 Linux 命令。如果我们遗漏了什么,请在下面的评论中分享你最喜欢的 Linux 命令!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
如何列出 MySQL 数据库(分步代码教程)
MySQL 是当今使用最广泛的关系数据库管理系统(RDBMS)之一。这是一个健壮的数据库平台,允许创建和管理可伸缩的数据库,主要使用结构化查询语言(SQL)。
MySQL 服务器是数据库所在的环境,也是数据库被访问的地方。作为服务器管理员,您经常需要检索有关该环境的详细信息—列出服务器上运行的数据库、显示特定数据库中的表、查看用户角色和权限、访问约束等等。
本文将解释如何通过命令提示符列出 MySQL 数据库的来龙去脉。
列出 MySQL 数据库的先决条件
您必须在本地机器上运行 MySQL 服务器才能开始。如果你没有 MySQL,有几种方法可以安装它:
- 安装 WAMPServer 、 XAMPP 、 MAMP ,或者任何其他包含 MySQL 的软件分发栈。
- 直接从他们的官方网站下载并运行 MySQL 安装程序,通过设置过程来配置和安装 MySQL 服务器和其他工具。
为了方便地使用命令行运行 MySQL 命令,您需要将 MySQL 可执行文件的路径添加到您的系统环境中。如果您使用选项二安装了 MySQL,这一步是不必要的,所以可以跳过下一节。
将 MySQL 路径添加到系统的变量环境中
如果您在 Windows 计算机上运行 XAMPP 或 WAMP,本节将指导您将 MySQL 可执行文件路径添加到系统的变量环境中。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
首先,启动您的 Windows 文件资源管理器并导航到这台电脑。点击安装了 WAMP 或 XAMPP 软件包的驱动器( C: )。
如果运行的是 XAMPP,导航到xampp>MySQL>bin,将完整路径复制到 bin 文件夹。对于 WAMP,通过{ your-wamp-version }>bin>MySQL>{ your-MySQL-version }>bin导航到其完整路径。

bin 文件夹的完整路径。
点击开始菜单,搜索“路径”点击编辑系统环境变量。
然后点击启动和恢复下的环境变量,选择路径变量,点击编辑。
接下来,点击 New 并粘贴 MySQL 可执行文件的完整路径(之前复制的)。

编辑环境变量。
然后,点击确定保存更改。
现在已经添加了路径,您可以在终端中执行 MySQL 命令。
登录 MySQL
要列出 MySQL 数据库,用户必须被授权访问所有数据库,或者您必须设置一个授予所有用户访问权限的全局SHOW DATABASES权限。
在通过命令提示符登录之前,请确保您的 MySQL 服务器正在运行:
mysql -u -p
注意:替换 with your username. The default username for MySQL is root,密码为空(默认没有密码)。
`

登录 MySQL。
显示 MySQL 服务器中的数据库
现在您已经登录,您可以通过执行SHOW DATABASES命令来列出服务器中的 MySQL 数据库:
SHOW DATABASES;
作为回报,您可以获得存储中的所有数据库:

存储中的数据库列表。
在返回的六个数据库中,information_schema和performance_schema是安装 MySQL 时自动生成的默认数据库。
information_schema数据库是一个不可修改的数据库,存储所有与数据库和其他对象相关的信息(视图、用户权限、表、约束等)。)存储在 MySQL 服务器中。
数据库输出的过滤结果
以前,您使用SHOW DATABASES返回 MySQL 服务器上的所有数据库,但是您经常需要过滤数据库输出,主要是当服务器上有许多数据库时。
LIKE子句根据指定的模式过滤SHOW DATABASE的结果。以下是一般语法:
SHOW DATABASES LIKE '';
它必须是表示要匹配的模式的字符串。字符串必须以百分号%结尾,表示一个或多个字符。
例如,如果您想只显示名称以字母w开头的数据库,您可以通过运行以下命令来实现:
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
SHOW DATABASES LIKE 'w%';
以下是过滤后的结果:

使用' w% '时过滤后的数据库响应。
使用信息模式查询表元数据
前面,您看到了information_schema数据库如何存储与 MySQL 服务器环境中的数据库、表和其他对象相关的所有信息。
information_schema数据库利用 schemata 表来存储所有数据库的信息。对于数据库过滤,您可以执行复杂的搜索来查询特定数据库的模式表。
例如,如果您需要名称以“samp”或“word”开头的数据库,您可以组合其他几个子句来进行复杂的查询:
SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';
结果如下:

复杂查询的结果。
此外,您还有来自information_schema数据库的tables表,它包含所有表的信息。类似地,您可以执行查询来仅检索与指定模式匹配的表。
例如,下面的查询只返回 WordPress 表的模式信息——只返回名称以“wp_”开头的表:
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
结果如下:
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features

结果的模式信息只有 WordPress 表。
在information_schema中找到的其他表格包括columns、constraints、table_constraints、check_constraints和referential_constraints。
常见问题和最佳实践
执行 SQL 时最常见的错误原因之一是未能在语句末尾使用分号。
另一个是使用无效的 SQL 语法或拼写错误的表/列名。为了避免这种情况,请交叉检查表名或列名,以确保拼写正确。一定要交叉检查你的语法。
以下是一些需要记住的其他最佳实践。
SQL 关键字使用大写字母
编写 SQL 代码时,请始终使用大写字母表示 SQL 关键字,小写字母表示表名和列名。这使得您的代码可读性更好,更不容易出错。
所以,不要这样:
select * from information_schema.tables where table_name like 'wp_%';
执行以下操作:
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
避免使用SELECT *
避免在 SQL 查询中使用SELECT *。你的请求不明确,是因为你不可能总是知道它会返回什么。而是指定要从表中选择的列。
所以代替这个的是:
SELECT * EXCEPT(phone) FROM users.profile
执行以下操作:
SELECT name,
dob,
address,
country,
address,
FROM user.profile
缩进您的代码
最后,让查找错误更容易的另一个技巧是缩进代码。这样可读性更强!
数据库管理员
或者,您可以选择通过使用数据库管理器来管理数据库,而不编写 SQL。这允许用户访问数据库管理功能,而无需编写 SQL 查询。该软件连接到一个 MySQL 服务器,并提供一个用户界面来展示数据库功能。一旦连接,UI 将显示服务器上的所有数据库。不同管理工具的外观和感觉各不相同,但过程是相似的。

DevKinsta’s database manager.
有几个工具可供选择,包括 phpMyAdmin 和 Adminer ,这两个工具都可以通过 DevKinsta 访问。DevKinsta 的默认管理工具是 Adminer,因为它是轻量级的、简单的、快速的,但是 phpMyAdmin 可以轻松访问。
T9】
摘要
作为服务器管理员,您需要能够高效、准确地检索 MySQL 服务器上数据库的详细信息。查看服务器上有哪些数据库、查看特定的表和表中的信息,以及访问有关用户角色和权限的信息,这些都是至关重要的任务。幸运的是,从命令行使用 SQL 可以使这一切变得轻而易举。
当您的数据库管理需要扩展到查询表之外时,Kinsta 可以提供帮助。立即了解有关我们的可扩展数据库托管选项的更多信息!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。`
2022 年信用卡拒绝代码完整列表
原文:https://kinsta.com/blog/list-of-credit-card-declined-codes/
当你尝试使用信用卡时,你的信用卡被拒绝了吗?
您是否想知道您的交易被阻止的原因是因为您没有资金还是因为位置限制?还是别的什么?
有了这个信用卡拒绝代码列表,您可以确定问题的来源。
在这篇文章中,我们将帮助您找出您(或您的客户)的信用卡到底发生了什么,以及为什么交易没有通过。我们将详细介绍所有标准的(不太常见的)信用卡拒绝代码,包括它们的含义以及您应该如何处理每一个代码。
我们走吧!
查看我们的视频指南,其中有完整的信用卡拒绝代码列表
什么是信用卡拒绝代码?
信用卡拒绝代码是当交易或支付被拒绝时出现在信用卡处理器上的代码。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
如果你在商店里不能使用你的信用卡,你和卖主会得到一个错误信息,它会告诉你哪里出错了。
您也可以在尝试进行在线购买时获得错误代码。

信用卡网上购物被拒的例子(来源:【SmarterQueue.com】)
每当交易被供应商、银行或发卡机构停止时,都会发生这种情况。
当您遇到这个问题时,您会收到一条简短的错误消息,包含一到三个数字(在某些情况下是字母)。
这个错误信息就是所谓的信用拒绝代码。代码可以解释实际问题是什么…只要你知道它的意思。
首先,在深入探讨所有潜在的信用卡拒绝代码之前,我们将介绍一些最常见的信用卡拒绝原因以及与之相关的代码。
如果您的客户在您的网站上尝试结账时看到这些代码中的一个,请使用本指南了解可能是什么原因造成的✅ 点击发布推文
信用卡被拒的最常见原因
首先,让我们从交易可能被拒绝的几个常见原因开始。
问题可能很简单,比如支付处理器卡出问题,资金不足,或者与你的银行或信用卡公司有关的电子问题。
一些最常见的退卡原因包括:
- 信用卡验证错误(代码 CV): 您的卡的微芯片或磁条可能有问题,无法用于交易。
- 资金不足(代码 51): 您的卡(信用卡和借记卡)相关账户中的资金不足。
- 超过信用额度(代码 65): 即使你的账户里有钱,如果你已经超过了信用卡的信用额度,你也需要付清才能再次使用。
- 过期卡(代码 54): 所有信用卡都有过期日期,在该日期后尝试使用卡会给你一个错误信息。
- 不允许交易(代码 57): 当您试图使用您的卡进行不允许的交易时(例如,如果您阻止了在线交易或国际支付),就会出现这种情况。
- 卡号输入错误(代码 14 & 15): 卡号输入不正确有两种错误方式。如果第一个数字不正确,你会看到错误代码 15 表示“没有这样的发行商”,因为第一个数字指出了卡的发行银行。如果您得到任何其他错误的号码,您将得到错误代码 14 ,因为您输入了无效的卡号。
- 错误的安全码(代码 63): 当您在卡背面错误地键入三位数的 CVV 或 CVC 代码,或者在卡正面错误地键入四位数的 CID 代码时,就会出现这种情况。

哪里可以找到你的 CVV、CVC 或 CID 号码的例子(来源: LendingTree )
对于其中的许多问题,您可能还会看到错误代码 12 或错误代码 85 。这些只是表示一个无效的交易。信用卡发卡银行经常使用这两个错误作为总括响应代码,从而更难知道哪里出了问题。
您可能输入了错误的信用卡号码,使用了错误的验证码,输入了无效的过期日期,或者尝试了一些本来不可能的事情,如尝试退款。
如果您在这一部分没有看到您的错误代码,您可以浏览下表,其中按数字顺序列出了 50 多个信用卡拒绝代码,以及每个代码出现的原因和如何解决问题的详细信息。
信用卡拒绝代码完整列表
此表包括所有信用卡错误代码的列表、它们的确切含义(实际问题)以及如何修复它们。
| 密码 | 标签 | 问题是 | 狐狸 |
| 01 | 参考发行人 | 发卡银行(万事达卡、维萨卡、发现卡等。)在没有具体原因的情况下阻止了交易。 | 给银行打电话,让他们解释这个问题。 |
| 02 | 参考发行人(特殊条件) | 客户的银行阻止了该交易(类似于代码 01)。 | 用卡上的号码打电话给银行,要求解释。 |
| 04 | 拿起卡,保持通话(无欺诈暗示) | 客户的银行阻止了该交易,并告知商家保留该卡。这并不意味着欺诈,而是指透支的卡或过期的卡。 | 打电话给银行,询问为什么你的信用卡会出现提货通知。 |
| 05 | 不兑现 | 客户的银行停止了交易,并告诉商家“不承兑”该卡(不接受付款)。 | 打电话给银行,要求解释。 |
| 06 | 其他错误 | 发卡行无法指明错误,但交易出了问题。 | 请重试,如果问题仍然存在,请致电银行。 |
| 07 | 提货卡,特殊情况(欺诈) | 客户的银行停止了交易,因为该卡或银行帐户已被标记为欺诈。 | 如果你是客户,立即给银行打电话,澄清任何潜在的问题。如果你是商家,在你能从银行和顾客那里得到关于他们的身份和卡的合法性的确认之前,扣留卡。 |
| Ten | 部分批准 | 发卡银行接受一部分付款,但阻止其余部分,通常是因为超出了信用限额或帐户中的资金。 | 打电话给银行解决这个问题(如果信用额度有问题,就付清你的贷款)。 |
| Twelve | 无效交易 | 尝试的交易无效。这可能是由于任何数量的错误操作,包括试图退款退款。 | 打电话给银行之前,从头开始重新交易,并确保输入的所有信息都是正确的。 |
| Thirteen | 无效金额 | 您为交易输入的金额无效,通常是因为金额中输入了非数字符号(如美元符号)。 | 只需重新开始交易,并注意在输入金额时避免使用符号。 |
| Fourteen | 无效的卡号 | 卡号无效,信用卡处理器找不到相关账户。 | 重新开始交易,注意准确输入数字。如果问题仍然存在,请致电发卡银行。 |
| Fifteen | 没有这样的发行人 | 第一个数字,识别卡的发行银行,是不正确的。(信用卡发卡银行有自己独特的代码,以第一个数字开头——3 代表美国运通,4 代表维萨,5 代表万事达,6 代表发现。) | 再次仔细键入信用卡号,确保正确输入第一个数字。 |
| Nineteen | 重新进入 | 出现未知错误。 | 重新启动交易,并注意正确输入所有信息。如果问题仍然存在,请致电发卡机构。 |
| Twenty-eight | 没有答复/回应 | 交易过程中发生错误,但未说明原因。 | 重新启动交易,并注意正确输入所有信息。如果问题仍然存在,请致电发卡机构。 |
| Forty-one | 丢失的卡,捡起来 | 该卡的合法所有者已经报告了它的丢失或被盗,因此该卡的发行者已经否认了该交易。 | 如果是自己的卡,需要马上给银行打电话。如果你是商家,请顾客使用备用卡或联系他们的银行。 |
| Forty-three | 盗卡、提货(欺诈账户) | 合法所有者已将该卡挂失,因此发卡方否认了该交易。 | 如果是你自己的卡,你需要尽快用卡背面的号码打电话给银行。如果你是商家,请他们使用备用卡或联系他们的银行。 |
| Fifty-one | 存款不足 | 发卡方正在阻止交易,因为帐户已经超过信用限额,或者未决交易会使卡过期。 | 用卡背面的号码联系银行,用网银转账到卡上,或者用备用卡。 |
| Fifty-four | 过期卡 | 过期日期已经过了。 | 使用仍然有效的信用卡。(如果你只有一张卡,新卡通常会在旧卡到期前寄到,所以一定要联系银行。) |
| Fifty-seven | 不允许交易-卡 | 当您试图使用信用卡进行明确禁止的交易时,例如向外国商家账户转账,就会出现此代码。 | 使用没有此类限制的备用卡,或致电发卡银行,了解您是否可以选择允许此类交易。 |
| Fifty-eight | 不允许交易-终端 | 如果连接到终端或支付处理器的商家帐户配置不正确,您会看到此错误。 | 商家需要给他们的银行打电话来澄清事情。如果你是顾客,使用另一种支付方式,如现金或支票。 |
| Sixty-two | 无效服务代码,受限 | The invalid service code can refer to two specific situations.1: You’re trying to process an American Express or Discover card, but the system doesn’t support those card issuers.2:您试图用不支持在线支付的卡支付在线购物。 | 尝试使用不同发行商的信用卡,如 Visa。如果商家宣传接受您的发卡机构的支付,您需要联系银行,询问您的卡的在线支付配置。 |
| Sixty-three | 安全违规 | 三位数的 CVV2 或 CVC 或四位数的 CID 安全码不正确或未正确读取。 | 从头开始重新启动交易,并仔细键入正确的安全代码。 |
| Sixty-five | 超过活动限制 | 信用卡用户已超过信用额度(或者该交易会使他们透支)。 | 使用另一张信用卡。如果您没有其他卡,您可以使用网上银行或电话银行支付该卡,然后再重试。 |
| 85 或 00 | 发卡行系统不可用 | 当商家和发卡银行之间出现临时通信错误时,就会出现此错误代码。 | 稍等片刻,然后从头开始事务。 |
| eighty-five | 没有理由拒绝 | 发卡行无法识别具体问题,但交易仍未通过。 | 重新开始交易,如果问题仍然存在,请致电发卡行。你也可以尝试使用另一张信用卡,看看这个问题是否是商家特有的。 |
| Ninety-one | 发行者或交换机不可用 | 终端或支付处理器无法完成支付授权。 | 从头开始交易,如果问题依然存在,打电话给发卡行。 |
| Ninety-two | 无法路由交易 | 终端无法联系发卡方来处理交易。 | 等待几分钟,然后重试。如果问题仍然存在,请联系您的银行。 |
| Ninety-three | 违反,无法完成 | 发卡银行已经认识到(或被告知)信用卡用户的违法行为,资产已经被冻结。 | 如果你错误地得到了这个错误代码,请立即打电话给发卡银行来解决任何问题。 |
| Ninety-six | 系统误差 | 支付处理器出现临时问题。 | 重新开始交易。如果问题仍然存在,请尝试另一张信用卡。如果什么都没用,很可能是商家的支付处理器出了问题。 |
| RO 或 R1 | 客户请求停止特定的定期付款 | 您的客户特别要求停止您尝试处理的定期付款。 | 首先,取消对的所有预定未来付款,以避免拒付和相关费用。如果客户违反了合同,你需要和他们联系,把事情弄清楚。 |
| 履历 | 卡类型验证错误 | 读卡器在验证卡时遇到问题。这可能是微芯片或磁条的问题。 | 试试古老的把戏,把信用卡在你的衬衫上擦一擦,然后小心翼翼地再刷一遍。如果不起作用,输入号码或联系发卡银行。 |
| W1、W2、W9 | 连接到银行时出错 | 这可能是由于停电或服务中断造成的。 | 等待电力恢复,或者寻找可能影响您的当地停电消息。如果没有任何明显的原因,请联系您的商业银行。 |
欺诈的错误代码
无论你是商家还是持卡人,最糟糕的情况是你得到一个欺诈的错误代码。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
作为商家,您希望避免退款及相关费用和损失。作为持卡人,你显然不希望别人随意使用你的卡。
但是信用卡诈骗比你想象的要普遍得多。2019 年,仅在美国就有271823起信用卡诈骗案件。

2019 年美国信用卡诈骗案(来源:)
每年都有成千上万的信用卡欺诈事件发生,你需要警惕那些并不是他们所使用的信用卡的真正主人的顾客。你还需要保持警惕,意识到自己的牌是如何被利用的。
以下是所有与欺诈相关的信用卡拒绝代码:
- 代码 7 —取卡,特殊情况(欺诈账户):发卡方已将该账户标记为欺诈账户,因此拒绝交易。
- 代码 41 —失卡,拾到(诈骗账户):真正的主人将此卡挂失或被盗,发卡方已封锁交易。
- 代码 43 —盗卡,提货(诈骗账户):机主已挂失卡,发卡行已封锁交易。
- 代码 215 —丢失/被盗卡:真实持卡人已挂失或被盗卡,发卡方阻止交易。
- 代码 534 —不兑现,高额欺诈:交易未通过 PayPal 或 Google Checkout 风险建模。
- 代码 596 —疑似欺诈:发卡机构再次怀疑欺诈,并已阻止交易。
注意:如果你接受网上支付,并且你担心欺诈和拒付,我们已经写了一份关于如何减少高达 98%的信用卡欺诈的指南。
如果我的信用卡被拒绝,我该怎么办?
当你的信用卡被拒绝时,你应该做的第一件事是寻找错误代码(或者如果你自己使用支付处理器,写下来)。
然后,检查您的信用卡/账户或商家的终端是否有问题。
最后,您必须采取解决该特定问题所需的适当措施。这可能是重新开始交易,仔细输入所有内容,给银行打电话,或者尝试另一张卡。
需要为您的电子商务网站提供超快的、可靠的、完全安全的托管服务吗?Kinsta 提供所有这些服务,并由 WooCommerce 专家提供 24/7 的世界级支持。查看我们的计划
故障排除可归结为一个简单的三步流程:
- 询问拒绝的代码。
- 了解代码的含义。
- 采取适当的行动(通常打电话给发卡银行或尝试另一种信用卡)。
你可能认为你已经准备好了你的资金,或者你的信用卡额度还没有达到,但是去银行核实一下也无妨。
我们大多数人都有多张卡,很难把它们都记录下来。仅在美国就有超过 10 亿张信用卡在使用。

美国和世界信用卡数量图表(来源: Shift )
因此,如果你在使用你的一张卡时收到错误代码,避免直接使用下一张卡。第一,一定要联系银行,了解真实情况。
你不想遭受不必要的透支或滞纳金,或者在成为欺诈受害者后收到令人讨厌的意外账单。
信用卡拒绝代码常见问题
您还对错误代码感到困惑吗?查看这些常见问题。
为什么我有钱的时候信用卡被拒?
尽管您的账户中有资金,但您的信用卡可能会被拒绝的原因有很多:
- 您可能已经超出了您的信用额度。除非你已经设置了自动支付,否则你必须先还清信用卡债务,然后才能再次使用。
- 你可能试图使用信用卡进行未经批准的交易,如在线支付或在国外支付。
- 您的信用卡号可能被标记为欺诈。
- 您可能输入了不正确的信用卡号、CVV2 代码或 PIN。
- 问题可能出在商家的终端上,而不是你的信用卡。
信用卡代码 51 是什么意思?
信用卡拒绝代码“51”表示您已超出信用额度(如果是信用卡)或资金用完(如果使用借记卡)。
为什么我的卡在网上订购时被拒?
你的信用卡可能会因为三个潜在的原因被拒:账户设置,资金不足,信息不准确。
- 您的信用卡可能无法处理在线支付。联系你的银行确认是否是这种情况。
- 您输入的信用卡号、CVV2、CVC、CID、PIN 或姓名可能不正确。
- 您的帐户中可能没有足够的剩余资金,或者已经超出了您的信用额度。
摘要
无论是你自己的信用卡还是客户的信用卡被拒绝,知道真正的原因对于决定正确的反应是至关重要的。
如果你不知道你遇到了什么问题,你可以用另一张信用卡继续你的一天。然而,要时刻保持警惕,监控你的信用额度使用情况,保护自己免受身份盗窃。
希望这个列表能帮助你弄清楚你的信用卡出了什么问题,并给你必要的知识来采取适当的措施解决这个问题。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
关于在 WordPress 中托管本地字体的深入指南
当谈到在你的 WordPress 网站上托管和使用字体时,有很多不同的选择。你可以把它们放在本地,你可以使用谷歌字体(现在大多数主题都集成了谷歌字体),或者使用另一个第三方服务,比如 Adobe 字体。今天,我们想探究一下为什么在 WordPress 中托管本地字体会有优势。你不仅可以有更多的 HTML 字体选择,有时还会有 T2 的性能优势。查看我们下面关于如何在本地托管你的优质字体以及来自谷歌字体的任何字体家族的深入教程。
什么是网页字体?
当你浏览某人的 WordPress 网站时,你会看到两种基本字体,网页安全字体或网页字体。或者他们也可以使用两者的混合物。
建议阅读:如何在 WordPress 中改变字体。
- 网页安全字体是预装在设备或操作系统上的字体。网页安全字体的一些例子包括 Arial、Times New Roman 和 Courier New 以及 serif、sans-serif(参见现代字体)和 monospace 等通用字体系列。这些都是你见过很多年的字体。查看网页安全字体的完整列表。
- 网页字体是没有预装在设备上的字体,必须由用户的浏览器下载后才能显示。web 字体的一些例子包括 Google 的 Open Sans 和 Roboto 字体,以及 Adobe Fonts 公司流行的 Proxima Nova 字体。
Google Fonts 是一个开源的字体目录,在过去的几年里被广泛使用。据 BuiltWith 称,排名前 10,000 的网站中有超过 45%在其网站上使用谷歌字体。如果我们看看谷歌字体分析,我们可以看到他们已经有超过 17000 万次的浏览。太多了!Open Sans 和 Roboto 是他们使用最广泛的两个字体系列,Roboto 在过去的一年中增长了 77%。我们有一个关于最好的谷歌字体的帖子,一定要看看: 15 种最好的谷歌字体。

谷歌字体统计
托管本地字体与第三方
在我们深入本教程之前,了解托管本地字体和简单使用第三方服务之间的一些优缺点是很重要的。本地托管字体意味着你实际上在你自己的服务器上有字体文件(或者复制到你的 CDN 中,你也可以用它来管理你所有的其他资产)。而如果您使用第三方字体,如 Google 字体或 Adobe 字体,您只是通过链接到外部资源来包含这些字体。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
本地字体的优势
1.更广泛的字体选择
使用本地字体的一个巨大优势是你有更广泛的字体选择!虽然 Google Fonts 和 Adobe Fonts 等第三方服务拥有庞大的库,但它们无法与高级字体商店相比,在高级字体商店中,您可以购买任何您想要的高级 web 字体并将其放在您的网站上。实际上,我们将在下面的教程中使用一种高级字体,你无法从任何第三方服务中获得这种字体。
2.可以更好地整合
由于有更多的字体可供选择,本地托管这些字体可以让你选择一种能够更好地与你的品牌整合的字体,以保持整个网站的一致性。这完全取决于你的设计需求和偏好。
3.不必依赖第三方服务
当你在本地托管字体时,你不必依赖第三方服务或他们的服务器。众所周知,Adobe Fonts(以前的 Typekit)等服务会下降,这反过来会让你看起来很糟糕。对 WordPress 站点的依赖越少越好。
当https://t.co/Kde0okKlP0停机时,网络停止工作#海关 #第三方
—马克·⛔️🐝(@ markhealey)2015 年 11 月 17 日
改进本地化策略的完整指南
所有公司都希望增长,在互联网时代,全球增长从未如此容易实现。
但是,如果你不愿意改变基于地理位置的营销策略,向新市场扩张可能会很困难。当你在全球拓展业务时,一刀切的策略是行不通的。不同的市场有不同的敏感度、偏好和语言。这就是为什么你需要搞营销本地化。
但是本地化不仅仅是通过自动翻译器运行你的内容。你必须考虑当地市场,为他们创造个性化的购物体验,就像你第一次在家里推出服务时那样。
如果你没有一个强大而详细的本地化战略,你的全球扩张计划可能会落空。但是什么是本地化战略呢?在继续扩张的过程中,您如何推出最佳的本地化策略来确保您的成功?
请继续阅读,寻找答案。
什么是本地化战略?
您的本地化策略是您的企业为使您的内容和服务适应不同的语言和文化而制定的计划。鉴于国际客户群的各种偏好、语言和敏感性,这被视为全球扩张的重要组成部分。
因此,你的产品必须以一种独特的、相关的、适合外国观众的方式展示。在美国市场行得通的,在欧洲、亚洲,甚至在加拿大等其他北美市场不一定行得通。
这是为什么呢?因为每个市场都有不同的文化,而每种文化都需要你的营销计划给予直接的个性化关注。个性化对现代消费者来说是一个非常重要的因素。尽管如此,只有 47% 的公司根据客户的实时行为对他们的沟通进行个性化处理。

Less than half of companies take the time to personalize their communications (Source: Segment)
比如说,如果你在美国的营销内容中有许多衣着暴露的模特,那么同样的内容在印度这样一个更为保守的社会中是不会流行的。事实上,在印度开展同样的活动可能会冒犯很多人,让市场认为你的公司过于淫秽。
通过提出本地化战略,您将能够根据广泛研究得出的数据,在各个市场中为您的服务带来新的亮点。你将能够在这些地区向消费者展示更加个性化的营销体验,以一种新受众能够接受的方式展示你的产品或服务。
这可能包括满足不同于原始受众的需求或痛点。不同的市场有不同的需求,作为营销人员和企业主,你有责任弄清楚他们在寻找什么,他们为什么需要它,以及你如何才能最好地让他们相信你有答案。
本地化还包括对您的在线状态的一些调整,包括但不限于将您现有的内容翻译成新的语言。你可能还需要改变你的客户友好网站的其他元素,比如它的用户界面、图像、支持选项和支付网关,以服务于全新的受众。

Coca-Cola’s website is different based on location (Source: Translate by Humans)
许多公司甚至专门为不同的市场创建新的网站,主要的。网址重定向到一个不同的网页基于您的地理位置。你需要确保这些网站始终可用。这就是为什么你应该迁移到一个可靠的应用程序、数据库和托管 WordPress 主机服务。
你需要本地化策略吗?
如果你想把公司扩展到国际市场,你需要一个本地化战略。但这不是你可以全速前进的事情。这对你的成功至关重要,为了成功,你必须好好计划它。
最终,如果您试图过度自动化流程并将其放到 rails 上,您将无法启动您的本地化策略。它需要人情味和持续的关注。如果没有一个稳固的、成熟的战略,你将会在你试图拓展的市场中疏远潜在的新客户。
就品牌声誉而言,第一印象意义重大,如果你跌跌撞撞地走出大门,你可能不会有第二次机会。
当然,如果你不打算拓展原有市场,你就不需要本地化策略。这既费时又费钱,所以除非你确实在寻找一个特定的新的目标市场,否则你不需要采取本文概述的步骤。
但是,为什么本地化战略对于拓展国际公司如此重要呢?
首先,本地化内容有机地与用户交流。此外,通过本地化你的营销策略,你不会无意中冒犯任何人。
精心策划的本地化策略的好处
精心策划的本地化战略的主要好处是,它将帮助你在战术上将你的业务拓展到世界各地的新市场。这意味着增加品牌曝光率和利润。
本地化策略可以帮助您避免混乱的、文化上不适当的错误,就像我们上面强调的美国观众和印度观众之间的差异的例子一样。你最不想做的事情就是冒犯你的新市场。
通过在你的翻译上投入真正的时间和精力,你将能够用他们的语言自然地向新的观众展示内容,就像一个以英语为母语的人会做的那样。如果做不到这一点,可能会孤立你的受众,让你在这个新市场上看起来像一个非法公司或骗局。
你制定的策略也涉及到大量的信息收集。这只能帮助你了解新地区客户的不同痛点。虽然你的产品在多个地方的总体使用可能是相同的,但是为什么需要它的潜在需求可能是不同的。
当你将你的营销本地化时,你就能适应其他公司对该受众的营销。这将让你与新的潜在客户自然地联系起来,同时在全球范围内打造有利可图的品牌忠诚度。
当然,精心策划的本地化战略的主要好处之一是,它的成功就是您的成功,您将为您的企业打开一个全新的市场,并获得更多收入。
你也可以超越你的竞争对手,让你在本地和全球范围内拥有超越对手的竞争优势。
开始:本地化策略指南
布局您的战略工作流程
开始本地化策略的第一步是确定策略工作流程。这是您了解您目前在本地化方面所处位置的地方。你需要从头到尾计划好整个工作流程,突出你的起点和目标。
确保你在做这件事的时候非常具体,因为这将有助于你规划你战略的每一步。
这也是您确定想要扩展的位置以及在这些区域开始需要做什么的地方。本质上,你将会制作一个路线图来规划扩展过程。
翻译什么时候需要被要求准时发布?你将在新的市场上为你的内容推出什么样的风格指南?你将如何以符合新客户需求的方式进行质量保证?
这些都是在你开始尝试搬到一个新的地理位置之前要问自己的问题。
这也是你可以建立预算的地方。确定你愿意花多少钱来拓展这个新领域,看看是否可行。如果不是,你可能不得不暂停你的计划,直到你能投入更多的钱。
了解你的观众
在你向观众推销之前,你必须了解他们,确定他们想要什么,同样重要的是,他们不想要什么。
不同地区新客户的痛点是什么?它们如何符合您目前在国内营销的痛点?您可以做些什么来有效地营销这些新的棘手问题?
此外,您的新潜在客户在哪里消费最多的内容?如果你发现他们在脸书花了很多时间,你可能不得不将营销工作转移到那里。如果他们喜欢 YouTube 视频,你应该专注于在那个平台上发布。
最后,这个新市场存在哪些文化差异?什么被认为是越线或适合在媒体上看到?你能调整你现有的网站界面和营销材料来适应这些感受吗,或者你必须从头开始?
考虑你的目标和关键绩效指标
确保您创建的本地化策略的每一步都有助于您的总体目标。这些目标和关键绩效指标应该提前制定,你的行动需要根据它们来衡量。

You need a strong understanding of your KPIs (Source: Translate by OnStrategy)
重要的是你要保持对你想要完成的事情的高度关注。这有助于你关注你的最终目的地,并继续朝着目标前进。
保持事情简单
虽然本地化策略看起来是一项艰巨的任务,但是不要让这个过程过于复杂。
明确列出谁负责什么工作,以便您可以了解本地化团队中每个成员的角色。你也应该尽可能多的了解这个新市场,这样你在制定计划的时候就能得到信息。通过从里到外了解新市场,您可以找到开始本地化的最简单方法。
改进您的本地化策略:12 个关键提示
1.人性化您的本地化翻译
将您的内容翻译成当地语言是任何本地化策略的重要组成部分。当扩展到像日本这样的市场时,这可能会特别困难,因为在这里,你不仅要处理一种新的语言,而且要处理一个全新的字母表。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
但是,你不能因为语言障碍而排斥潜在客户。在本地化你的营销策略时,你的目标应该是考虑如何在人的层面上与新客户建立联系。

Sentence structure varies by language (Source: 8020Japanese)
忽视他们的母语意味着潜在地冒犯你的新客户,并在他们从你这里购买的意愿面前竖起一堵墙。成功向潜在客户营销的关键之一是,这些潜在客户需要流利地理解他们正在阅读的内容。
这就是为什么确保你不仅在使用他们的语言,而且是以语法正确的方式这样做是很重要的。有时直接翻译是行不通的,因为不同语言的句子结构会有很大差异。
你也应该花时间为你的新观众改变任何与文化无关或不敏感的内容。
2.创建本地化工具包
本地化套件是一个文档,其中包含了关于您的本地化策略和目标的所有信息。
你的工具包的一部分应该是一个风格指南,详细说明制作内容时关于你的品牌声音、颜色和总体目标的具体信息。这种风格可以(也可能应该)根据你营销的地区而有所不同。
您的本地化套件中应该包括的一些项目有:
- 您的企业使用的任何常用术语,以及如何与客户沟通
- 与你欣赏的品牌相似(不考虑行业),这样你就可以借鉴他们的经验
- 在你的领域中,你喜欢和不喜欢别人做什么
该工具包对翻译人员特别有帮助,有助于让所有人都保持一致——团结在同一个愿景下。
3.审核您的客户旅程
为了创建最有效的本地化策略,您必须对现有的客户旅程进行长期观察。
它的哪些元素可以带入新的市场?有吗?你需要确定你现有的步骤是否可以转移,并使用之前的框架形成你改变的客户旅程。

Create a map of your current customer journey (Source: Empire Flippers)
在你的新市场,消费习惯有所不同吗?如果是这样,你可能需要为你的新客户推出不同的促销活动来迎合这种转变。
过去,您在客户旅程中遇到过哪些问题?这些问题会在新市场中继续存在吗?如果是这样的话,从你的错误中吸取教训,推出你的新客户之旅,充分优化和准备就绪。
请记住,现有客户旅程的每一步都需要本地化。你可能会很幸运,有些步骤可以完全执行,但每一步都需要仔细分析和大量思考。
当然,这是一个你必须在你拓展的每个新市场重复的过程。
4.挑选目标位置
仅仅指出一个你喜欢的国家并决定要扩展到那个市场是不够的。你的扩张选择需要是战略性的。为此,确定哪里对您的服务有实际需求,并开始为这些领域制定本地化策略。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
那些地区有什么规则?你需要了解这些地区的各种法律法规。例如,如果你正在向欧盟扩张,你需要熟悉 GDPR ,它规定了公司如何收集客户数据。未能遵守这一点可能会让你遭受巨额罚款。

The GDPR is a data privacy law in the EU (Source: EUGDPR Academy)
还有不同领域的营销规则,你一定要知道,以免你在不知不觉中触犯法律。
在决定是否扩展到一个领域时,你需要做的最后一件事是确定它是否具有成本效益。在最终决定之前,进行市场分析以确定利润的需求和潜力。
5.确定您的成本
为了计算出你能获得什么样的利润,你必须确定你的成本。在新地点开始营销需要多少成本?
您需要将本地化流程纳入您的总体预算中。你服务的每个地区都应该有自己的广告预算。
6.预见需求
即使您还没有考虑扩展到不同的领域,预测您将来可能会有的本地化需求也是很重要的。你可以在设计你的网站的时候就开始考虑本地化。
通过从一开始就将您未来的本地化需求牢记在心,您将会使这个过程变得更加容易。例如,试验一下你的网站在各种翻译下会是什么样子。将这些融入到你的设计中,这样当扩展的时候,你就不需要重新发明一切了。
和你的网站设计者谈一谈,考虑到这些未来的目标来建立网站,即使本地化还需要几年的时间。通过这样做,当你准备扩张时,你将能够缩短上市时间。
7.巩固本地化角色和职责
当进入本地化策略时,牢牢把握谁在做什么很重要,就像你如何通过 WordPress 分配用户角色一样。这就是为什么定义本地化团队中每个成员的角色和职责至关重要。
这确保了没有人踩到任何人的脚趾,每个人都知道他们向谁报告。创建一个主列表,突出每个团队成员、他们各自的职责以及他们在指挥链中的位置。这将避免耗时的争论和误解。
8.了解你的观众
分析你的新受众,以便很好地了解他们是谁,他们需要什么,以及他们希望如何营销。
例如,他们在哪里消费媒体?他们看电视吗?他们在社交媒体上比一般人多吗?弄清楚他们的眼睛看向哪里,这样你就可以想办法把你的营销材料放在那里。
确定如何与这些人进行有意义的互动也很重要。弄清楚他们的价值观以及市场的政治性质,并以这种方式直接吸引你的消费者。

A buyer persona allows you to list all relevant information about your audience (Source: AWeber)
一旦你有了所有这些数据,把它们整理成买家角色,这样你就可以有针对性地开展营销活动,为你的潜在客户提供个性化的体验。
9.创建工具和平台列表
创建一个软件工具列表,当你要将业务扩展到其他市场时,你将需要这些工具。
这些可以包括:
- 社交媒体管理工具
- 托管网站的 WordPress 主机
- 电子邮件平台
- 像 MyKinsta 这样的控制面板解决方案
- APM 工具
- 本地广告平台
10.利用当地资源
当需要为当地市场翻译你的内容时,使用理解它的翻译者。当地的翻译最适合这一点,因为他们了解当地文化,可以帮助你了解当地文化。
你要确保你的翻译是以英语为母语的人,对他们语言的语法规则有很强的理解。
11.规划文化相关的内容
你制作的内容应该是本地化的,并且是针对你要接触的市场的。这意味着在社交媒体上为你的新受众标记特殊的场合,比如法定假日和独立日。
尽量在你的本地化内容中注入历史感和民族自豪感。向你的观众展示你关心他们和他们的文化。
12.衡量您的本地化结果
最后,随着您的本地化战略的继续,重要的是监控和测量您的结果以确定一切进展如何。
通过不断的分析,你可以找出什么是有效的,什么是无效的,当你没有达到你的目标时,你可以采取必要的措施来改变事情。
本地化是你在国际上拓展业务的一个重要部分。时刻牢记本指南中列出的提示,你就能成功进入新市场。
如果你正在为你的各种网站和项目寻找一个应用程序、数据库和托管的 WordPress 主机,当你扩展到新的市场时,试试 Kinsta 吧。现在联系我们安排演示。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
被锁定在你的 WordPress 管理面板之外?(下面是要做的事情)
被锁在你的 WordPress 管理面板之外会引起各种各样的恐慌。很少有比发现你无法登录 WordPress admin 更令人沮丧的事情了——你心爱的数字权力领域。
这很像你在漫长的一天后回到家,发现钥匙丢了的感觉。你感到恐慌,然后你感到沮丧,最后,你开始寻找解决办法。
如果你在这里,你可能已经在第三点上了。很高兴,你可以采取相当简单的步骤回到你的 WordPress 仪表盘。
所以,你可能想要平静你的神经,深呼吸,掰你的指关节,学习我们向你展示的如何成为一名锁匠大师。
还原备份或创建备份
重要的事情先来。根据你运行的 WordPress 站点的类型,恢复你的 WordPress 站点的备份来修复你的登录问题并快速恢复可能会更快。尤其是如果你知道你的问题是什么时候开始发生的。
在 Kinsta,每天都会自动备份,你可以点击一下恢复你的 WordPress 站点。如果你使用 WordPress 备份插件设置了自动每日备份,情况也是如此。

Restore WordPress backup
如果你正在运行一个数据不断变化的网站,比如说一个 WooCommerce 网站或有很多评论的高流量博客,那么你会希望继续下面的步骤,这样你就不会丢失中间的任何数据。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
由于接下来的步骤涉及改变你的数据库中的重要数据,我们建议在继续之前做一个 WordPress 站点备份。因为你不能访问 WordPress 管理仪表板,你必须手动操作。
大多数主机允许您从控制面板生成并下载网站和数据库的完整备份。你可能需要阅读你的网站主持人关于如何做到这一点的指示。在 Kinsta 你可以创建一个手动备份或者甚至下载一个完整的网站(。zip)备份。

Manual WordPress backup
如果您使用 cPanel,您可以在“备份”工具或“备份向导”下完成此操作

cPanel backup
当您有了可靠的备份后,请继续下面的步骤来解决您的问题。
为什么你被锁定在 WordPress 管理面板之外?
你可能在想“为什么 WordPress 不让我登录?”发生这种情况有许多可能的原因。你可能最近修改了你的 WordPress 代码,你可能添加了一个新的插件或主题,或者你可能刚刚醒来就遇到了这个错误。
如果您最近做了导致这个错误的更改,您应该非常清楚从哪里开始纠正这个问题。
无论是哪种情况,本指南都将带您了解有助于解决此问题的各种解决方案。解决方案根据您遇到的错误进行分组,因此您不必全部阅读。
- 看到“此功能已被禁用”时:禁用登录或安全插件。
- 当密码不起作用(密码恢复失败):使用 phpMyAdmin 重置密码。
- 当您失去管理员权限时:创建一个新用户并分配管理员权限。
- 当你因登录次数过多而被锁定时:禁用安全插件。
- 看到白屏死机:排除白屏死机的常见原因。
- 看到“建立数据库连接出错”:修复数据库连接问题。
- 当您看到“解析错误:语法错误”时:检查任何最近的代码更改。
当你忘记了你的自定义登录网址
一个常见的 WordPress 安全实践是将默认的管理员登录 URL ( domain.com/wp-admin)改为自定义的。这有助于防止黑客和机器人不断攻击您的登录 URL 来获取访问权限。
然而,如果因为忘记了你的登录网址而无法登录到 WordPress admin ,当你试图访问你的网站时,你可能会看到一条类似“这已被禁用”的消息。也许你已经把它作为书签删除了,或者它只存在于你的 WordPress 历史记录中,你的缓存已经被清空了。

This has been disabled
无论 wp-admin 不工作的原因是什么,如果你使用的是 WPS Hide Login 或 Perfmatters 这样的插件,你可以禁用该插件,暂时将其恢复到原来的登录 URL。Wp-admin 不工作?查看如何在没有 wp-admin 权限的情况下禁用 WordPress 插件的步骤。
当您的密码不起作用(并且密码恢复失败)时
通常,如果你试图登录你的仪表板,得到一个“密码不正确”的消息,简单的解决方法是点击“丢失密码”链接更改你的 WordPress 密码。

Lost your password
然而,在某些情况下,你可以这样做,但收不到密码重置邮件,可能是因为你的网站有邮件问题。如果这是您的问题,您可以通过直接在数据库上重置密码来解决。
使用 phpMyAdmin 重置密码
如果你是一个 Kinsta 客户,你可以在 MyKinsta 的“信息”页面点击“打开 MySQL”来访问 phpMyAdmin。

Login phpMyAdmin
如果您使用带有 cPanel 的主机,您可以在“数据库”部分找到 phpMyAdmin 链接。如果您没有 cPanel 登录详细信息,请向您的主机询问。

cPanel phpMyAdmin
一旦进入 phpMyAdmin,您将在左侧看到您的数据库列表。点击你的 WordPress 数据库打开它。

phpMyAdmin database
找到您的wp_users table并点击“浏览”
注意:前缀不一定总是wp_。如果您的前缀不同(例如site_,那么您的用户表将是“site_users”。

wp_users table
接下来,找到您的管理员用户并单击 Edit。

Edit admin user in phpMyAdmin
phpMyAdmin 将在一个表单中显示这个用户的所有信息。要编辑您的密码,找到user_pass输入区,清除当前值,并输入您的新密码(记得保存在某个地方)。
在 function 下,选择 MD5 以确保您的新密码经过哈希处理。最后,单击 Go。

Change password in phpMyAdmin
现在用你的新密码登录到你的 WordPress 管理仪表板。
T3】
当您失去管理员权限时
你能正常登录,但发现你不再有管理功能,如插件和主题?如果是这样,那么您的问题是您不再拥有管理员权限。可能是你的 WordPress 网站被黑了,你的权限被删除了。
要解决这个问题,您需要直接在数据库中添加一个新的管理员用户。
创建新用户并分配管理员权限
要创建一个新用户,需要使用 phpMyAdmin 访问数据库。在数据库中,我们将编辑wp_users和wp_usermeta表——第一个用来添加新用户,第二个用来授予管理员权限。
要访问您的数据库,请登录 phpMyAdmin。从左边的列表中选择你的 WordPress 数据库。

phpMyAdmin database
接下来,找到您的wp_users表并单击 Insert(同样,您可能有一个不同于wp_的前缀)。如果您的前缀是site_,则选择site_users表)。

Insert into wp_users table
如下填写插入表单(保留您在此表单中输入的信息,尤其是 ID、user_login和user_pass字段):
- ID—比您当前拥有的用户数量多的任何数字。例如,如果您有 7 个用户帐户,请输入数字 8。为了安全起见,您可以决定使用一个高得多的数字。或者,您可以随时查看
wp_users表中现有的 id。 - user _ log in–您想要创建的新用户名。选择一个尚未使用的名称。例如,您不应该使用“admin ”,因为它已经被使用了。
- user _ pass–该用户的密码。确保在 function 下选择 MD5,以便对密码进行哈希运算。此外,请记住保留您输入的密码。
- user _ nicename–您的姓名或昵称。
- user _ email–您想用于该帐户的电子邮件。
- 用户网址–您的网站网址。
- 用户注册–使用日期选择器选择当前日期。
- 用户状态–设置为 0(零)。
- display _ name–您要为该用户显示的名称。您可以输入您的全名或上面设置的昵称。
完成后,单击 Go 保存新用户。

New WordPress user in phpMyAdmin
此时,我们希望向刚刚创建的新用户授予管理员权限。我们通过在wp_usermeta表中添加用户的权限来做到这一点。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
向下滚动找到wp_usermeta表并点击插入。

Insert into wp_usermeta table
接下来,使用以下信息填写插入表单:
- 未见面标识–留空。它将被生成。
- user _ id–我们刚刚创建的用户的 ID 号。
- meta _ key—输入
wp_capabilities。 - 元值–输入
a:1:{s:13:"administrator";b:1;}。请确保仔细键入该值。不要复制和粘贴,因为你可能会以无效的引号结束。
单击“开始”添加元值。

wp_usermeta administrator permissions
重复此过程以添加另一个元,但这一次,使用以下详细信息:
- 未见面标识–留空。
- user _ id–我们刚刚创建的用户的 ID 号。
- meta _ key—输入
wp_user_level - 元值–输入 10。
单击 Go 创建第二个元值。此时,您已经向刚刚创建的用户授予了完全管理员权限。继续使用该用户登录。
当你由于太多的登录尝试而不能登录到 WordPress Admin 时
一些 WordPress 安全插件限制登录尝试以防止黑客攻击。这是一个非常有用的安全特性,但是它也可以将你锁在外面。
如果发生这种情况,你发现你不能登录到 WordPress admin,最简单的解决办法是禁用你的安全插件,重新访问你的网站,如果你仍然计划使用安全插件,防止再次被锁定。
要禁用这个插件,使用 FTP 或 SFTP 访问你的站点文件(在这里了解两个的区别)。
连接后,双击打开包含你的 WordPress 文件的文件夹(通常是public_html)。
接下来,找到你的wp-content文件夹,双击打开它。在这个文件夹中,找到您的插件文件夹并打开它。
在那里,你可以看到一个以你的安全插件命名的文件夹。要禁用此插件,请将文件夹重命名为其他名称。在下面的例子中,我们简单地添加了 INACTIVE 作为文件夹名的前缀。

Disable WordPress plugin
现在去尝试访问你的 WordPress 仪表盘。
如果您现在可以成功登录,您需要采取措施防止这种情况再次发生。你可以重新激活插件,将自己从锁定列表中移除,或者将你的 IP 加入白名单,如果这些功能可用的话。否则,你可以决定联系插件的开发者寻求帮助。
当你看到死亡的白色屏幕
如果您在尝试访问管理仪表板时看到一个黑屏,那么您的情况就是可怕的白屏死亡。好消息是,有许多解决方案可以让您摆脱这个问题,并让您重新访问您的仪表板。
排除白屏死机的常见原因
通常,白屏死机是由你的插件问题引起的。因此,你应该尝试的第一件事就是禁用所有插件。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
由于您无权访问您的仪表板,您需要使用 FTP 手动禁用您的插件。
首先,使用 FTP 或 SFTP T2 连接你的站点。连接后,找到包含你的 WordPress 文件的文件夹(通常是public_html),双击打开它。
在那里,找到你的wp-content文件夹,双击打开它。在这个文件夹中,你会找到你所有的主要内容,包括你的插件文件夹。要禁用插件,您需要重命名此文件夹,这样 WordPress 就无法再读取它。
为此,右键单击插件文件夹,选择“重命名”,并将名称改为不同的名称,例如“DISABLED_plugins”

Disabled WordPress plugins folder
接下来,尝试访问您的仪表板,看看问题是否得到解决。如果是,那么您的问题与插件有关。然后,您可以在仪表板中将文件夹名称恢复为“插件”。仍然处于登录状态,您可以在仪表板中禁用所有插件,并开始一个接一个地激活插件,直到错误再次出现。这样,您可以非常容易地指出哪个插件导致了错误。
如果禁用插件不能解决白屏死机的问题,你可以尝试许多其他的解决方案。请阅读我们关于如何修复 WordPress 白屏死机的完整指南。
当您看到“建立数据库连接时出错”时
你所有的网站信息,从文章和页面,到用户账号和权限,都存储在你的数据库中。因此,如果您在连接数据库时遇到问题,不用说,您的网站将无法工作。
修复数据库连接问题
数据库连接问题经常发生,因为 WordPress 试图用错误的凭证连接。如果你最近修改了你的数据库用户名或密码,你必须更新你的wp-config.php 文件中的信息,否则,WordPress 将无法建立连接。
要访问您的wp-config.php文件,使用 FTP 或 SFTP 连接到您的网站。连接后,打开包含你的 WordPress 文件的主文件夹(通常是public_html)。在这个文件夹中,找到你的wp-config.php文件,点击右键,点击查看/编辑。
在 MySQL 设置部分,将您的数据库名称、数据库用户、数据库密码和数据库主机设置为您当前的详细信息。
注意DB HOST 并不总是“ localhost ”。你的主机提供商可以给你正确的主机名。

wp-config.php credentials
完成后,尝试访问您的仪表板,看看它是否工作。如果是,那么你的问题是错误的凭证。
数据库错误的另一个原因是数据库服务器的问题。如果您在共享主机上,并且如果此错误意外发生,这可能是您的问题。
在许多共享主机计划中,允许的并发连接数是有限制的。如果超出此限制,这可能会导致数据库连接错误。这是一个简单的步骤,联系你的主机,验证问题是否是他们造成的,如果是,请他们帮助解决。
在 Kinsta,您不必担心这一点,因为我们在每个站点都使用了容器技术。这意味着每一个 WordPress 站点都被放置在它自己的独立容器中,容器中有运行它所需的所有软件资源(Linux,Nginx,PHP,MySQL)。这些资源是 100%私有的,不会在任何人之间共享,甚至不会在你自己的网站上共享。我们唯一的限制是来自 PHP 工作人员的。
如果更新您的凭据或检查您的主机没有解决您的问题,那么您应该尝试数据库错误的其他解决方案。阅读我们的指南如何修复在 WordPress 中建立数据库连接的错误。
当您看到“解析错误:语法错误”时
WordPress 最大的优点是你可以很容易地添加功能来扩展你的网站的功能。网上有许多代码片段,你可以复制并粘贴到你的 WordPress 代码中,以获得额外的铃声或哨声。
如果你目前在试图访问你的网站时看到“解析错误:语法错误”,很有可能你最近从互联网上复制并粘贴了一个这样的代码到你的 WordPress 文件中。

Syntax error
您复制的代码可能包含错误,或者您可能没有正确粘贴它。从 WordPress 4.9 开始,他们应该回滚这些类型的错误,使这种情况更难发生。
检查任何最近的代码更改
解析错误消息通常会指出导致错误的文件。很有可能是functions.php文件。要恢复您所做的更改并使您的站点重新联机,您需要打开文件进行编辑。
首先,使用 FTP 或 SFTP 访问你的站点文件。连接后,找到包含你的 WordPress 文件的文件夹,双击打开它。
如果您查看收到的语法错误,可以看到文件的路径已指定。只需按照这个路径找到您需要编辑的文件。
找到后,右键单击并选择查看/编辑。
接下来,找到并删除您在该文件中所做的更改(注意只删除您添加的代码,不要删除其他代码)。
现在保存文件,并上传回你的服务器,之后你可以重新加载你的网站。
如果您小心地删除了添加的代码,您的站点现在应该可以正常运行了,并且您应该可以访问您的仪表板了。
如果您仍然想要添加代码的附加功能,您可以做一些事情。
- 检查以确保您复制并粘贴了“整个代码”。有些情况下,一些代码没有被复制,这导致了错误。
- 检查以确认您正确粘贴了代码。如果指令说,“把它粘贴在底部”,这并不意味着在结束的 php 标签
(?>)下面。相反,您必须将它粘贴到这个标签之前。 - 代码实际上可能有错误,在这种情况下,您可以联系获取代码的网站。
- 找到一个提供该功能的插件。
提示:如果你从网上复制并粘贴大量代码,我们强烈推荐使用免费插件,如代码片段。这使得不破坏某些东西和跟踪你所有的改变变得容易得多,而不必启动一个单独的子主题。
摘要
本指南涵盖了可能导致你无法使用 WordPress admin 的主要问题,以及你可以采取的快速返回网站的步骤。
希望您已经能够快速解决您的问题,并重新控制您的仪表板。如果你仍然有问题,那么这篇关于常见 WordPress 错误以及如何修复它们的文章可能会包含一个适合你的解决方案。
如果您使用了本指南之外的其他步骤来解决您的问题,请在下面的评论中与我们分享。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
如何在 WordPress 中创建优秀的长篇文章
人们会在不到一秒钟的时间内形成对你的第一印象,甚至是对你的公司的第一印象。吓人。谢天谢地,在线文章有更多的回旋余地。大多数网页都有不到一分钟的时间让访问者留下或离开。
但时间还是不多。如果你有不到 60 秒的时间来说服一个新用户你值得他们点击和分享,你最好简短明了,对吗?事实上,不是。事实证明,越短并不总是越好。如果你想在内容的海洋中脱颖而出,并让用户停留在你的页面上,长篇文章是一个不错的选择。👍
什么是长篇文章?
长篇文章指的是比你的普通文章更长的内容。虽然标准的文章长度在 1100 字左右,但长篇文章通常至少 2000 字,通常超过 2500 字。长篇文章是关于讲故事和吸引读者的。
Support
与标准的 500 字帖子相比,那些更有内涵、更有深度的文章通常更有趣、更吸引人、更值得分享。另外,它们很容易被翻译成常青树材料。长篇内容帮助一名营销人员在一年内为四个受众差异极大的网站吸引了近25 万次访问。谈 SEO 牛逼。
但长篇内容不仅仅是营销人员的专利。如果你有一个网站,你有潜力用一篇好文章赚钱。而且,如果你使用 WordPress,创建一些真正的精彩内容是非常容易的。在本指南中,我们将讨论什么是长篇文章,为什么你应该写它们,以及你可以用来充分利用你的网站的第一印象的工具。
长篇内容适合所有人吗?不,大多数人会从给长篇文章一个机会中受益。如果有的话,我们强烈建议你在你的网站上测试长篇文章,看看会发生什么。
- 钻研长篇文章
- 长篇文章的好处
- 长篇文章对搜索引擎优化有巨大的影响
- 7 个 WordPress 友好的工具和插件
- 2 个长长的爱的主题
深入研究长篇文章
在最基本的层面上,与内容相关的术语“长格式”指的是比典型的普通帖子更长的书面文章和博客帖子。虽然如今标准的帖子长度似乎徘徊在 1100 字左右,但长篇阅读通常至少是 2000 字,而且往往超过 2500 字以上,然而,内容长度并不总是最重要的因素。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
长篇写作已经成为一种趋势,这在很大程度上要归功于像 Medium.com 这样的网站,这是由推特联合创始人比兹·斯通和伊万·威廉姆斯创办的博客平台。虽然该网站没有发明长篇内容,但它确实将长篇文章放在了地图上,因为它与数字空间有关,并如何转化为更大的参与。
如果此时你还在挠头,不要担心。是什么让长篇大论奏效,这是值得思考的令人困惑的事情。毕竟,过去很多网站都有很长的内容。长篇大论的抨击对互联网来说并不陌生,最好的帖子大约 500 字的想法是从某个地方开始的,对吗?
是的,较短的字数在相当长的一段时间里被偏爱是有原因的。这里的想法是,注意力持续时间很短,潜在客户很忙,他们没有时间仔细阅读一页又一页的文本。他们宁愿对发生的事情有一个简单的了解,然后继续前进。不错,这听起来很有逻辑,但内容写作所呈现的公式化本质恰恰是长篇小说所反对的。
长篇内容是将创意带回内容营销的集中努力。这是关于讲故事和吸引读者。那种事情很难定义。以《福布斯》撰稿人约书亚·斯泰姆勒为例,他在一家设计公司 Teehan+Lax 的网站上阅读了一篇冗长的案例研究,这让他非常着迷——尽管他通常不阅读案例研究。这个漫长的案例研究到底是什么吸引了他?是的,它讲述了一个故事,但是 Steimle 说不止如此。答案?这项研究是为真实的人写的,最重要的是,这是 Teehan+Lax 团队想写和读的东西。
虽然听起来不科学,但人类的方法却是如此有效。正如 Steimle 所写:
…如果你创作了自己喜欢的内容,其他人可能也会喜欢。
长篇文章的好处
重要的是要明白长篇文章不仅仅是单词墙。因此,我们将深入了解下面的一些好处。
平均而言,2017 年的平均博文数量略低于 1100 字。这个数字可能会继续攀升。与 2014 年相比,去年有六倍多的博客发布了超过 2000 字的帖子。

Word count in posts (Image source: CoSchedule)
这是否意味着一般的文章现在被认为是长篇?看你问谁了。虽然很多人会说任何超过 1200 字的都属于长格式范畴,但这并不意味着它就是长格式。因为内容的长度只有画面的一半。另一半在它的——你猜对了——形式。
视觉上吸引人
围绕长格式内容的许多负面观点强调了“天哪,这么多单词!”部分。但是长格式内容不仅仅是长。它还塞满了视觉刺激、副标题和简单的导航提示,以使信息丰富但易于理解。其他可能破坏内容的东西包括 Tweet boxes(如下图所示)甚至是一个目录。
这些小小的接触对一部长篇作品的接受产生了巨大而累积的影响。增加视觉刺激有特别大的影响。将视觉内容融入高质量、有思想的文章中,将你的文字墙转变成令人敬畏、引人入胜的障碍课程。
添加图像也极大地增加了内容的覆盖范围。只需在文章中添加一张图片,你就可以获得高达 94%的份额。

Images increase shares (Image source: Backlinko)
但是加的越多越好。Canva 和 BuzzSumo 研究了超过 1 亿篇文章的数据。顶级演员都有一个共同点:形象无处不在。
他们发现每 75-100 个单词添加一张图片会获得最多的分享。每隔 125-150 个单词放置一张图片紧随其后。

Words per image (Image source: Canva)
这意味着一篇伟大的长篇文章仅仅有 1200 或更多的单词是不够的。还需要 10 到 12 张图片来拆分文案,防止文案成为文字墙。这就是它的形状,也是它区别于 20 世纪 90 年代早期大英百科全书系列的原因。
所以,如果你致力于创作长篇文章,确保你不会停留在字数上。添加一些视觉效果来保持内容的可读性和的共享性。
有时,长篇文章的内容甚至不包括在主博客提要中。相反,它链接到博客,并位于自己的静态页面上。一个很好的例子就是我们的 Kinsta 学习部分。长篇内容通常能够经受住时间的考验。
Long-form content is more often than not designed to stand the test of time. ⏳Click to Tweet
更高的质量
长格式的允许你创建更好的内容。有多少次,你看到一个承诺是“全面指导”的帖子,却发现它只是略述了一个主题?是啊,真令人沮丧。坚持传统的博文长度也是不可避免的。长篇内容可以让你更深入地研究一个主题,包括研究和采访反馈。它给了你一个彻底的机会,仅此一点就能产生更高质量的内容。
长篇文章有巨大的搜索引擎优化影响
现在,随着“什么”的方式,让我们谈论“为什么”你为什么要写长篇文章?你喜欢免费的搜索引擎流量吗?
当然,这个问题是一个陷阱。谁不喜欢免费流量?所以,让我们简单地说:如果你想让你的有机范围扩大,增加你的单词量。谷歌喜欢长篇内容。
根据 HubSpot 的研究,你的文章越长,你网站的反向链接就越多。

Word count vs linking domains (Image source: Hubspot)
这为你的排名创造了滚雪球效应。你的内容获得的链接越多(尤其是如果它们来自拥有大量域名权威的网站),你的整体 T2 站外搜索引擎优化就变得越强。

Off-site SEO (Image source: Moz)
这也是为什么越长的内容在搜索引擎结果页面上的排名越靠前的原因之一。在由协同计划进行的一项研究中,他们也发现了同样的结果;长格式内容的平均排名高于短页面。

Word count vs Google position (Backlinko)
搜索引擎优化专业机构 CanIRank 希望了解这种明显的滚雪球效应。因此,他们调查了内容长度和有机等级之间的相关性。他们的初步结果与其他研究惊人地相似。

Content length vs rank (Image source: Can I Rank?)
该团队深入挖掘数据,寻找内容长度和搜索引擎排名之间明显关系的潜在解释。他们推测以下因素可能是原因:
- 拥有更多域权限的大型网站倾向于发布更长的内容。
- 内容越长关键词优化越多。
- 更长的内容赚取更多的外部链接。
- 专家内容创作者倾向于写更多相关的材料。
尽管如此,即使控制了这些因素,他们也无法解释内容长度和排名之间的明显联系。这让卡尼兰克得出结论,“……因此,谷歌直接在他们的算法中奖励较长的内容是合理的(尽管未经证实),尽管效果相当小。”
但是,即使这种关系背后的“原因”还不清楚,但“结果”是清楚的。仅仅在你的内容策略中增加 1000 字的文章就能帮助你走得更远。HOTH 与一个新客户一起部署了这一策略,并看到了有机流量的惊人增长。

Content length impact on traffic (Image source: The HOTH)
这就把我们带回到了本节最初的问题:你喜欢免费的有机交通吗?如果是这样,那就扩充你的内容,提高你的字数。你的 SEO 会感谢你,随着越来越多的用户找到你的网站,你的底线也会表现出同样的感激。
现在,我们已经讨论了长篇文章背后的“是什么”和“为什么”这就把我们带到了内容三明治的核心:如何做。
7 个 WordPress 友好的工具和插件帮助长表单成功
优化内容对于获得最大收益至关重要。尼尔·帕特尔使用了这个策略,并取得了巨大的成功。2017 年,在 MarketMuse 的内容优化软件的帮助下,他已经庞大的流量和排名翻了一番。

Content optimization (Image source: Diffchecker)
通过改变小标题等小事情,加倍他的写作字数,并更新他的内容,他的网站在一年的时间内获得了近 100,000 个关键词的排名和两倍的月流量。
而且,尽管这项工作对于他的网站规模来说仍然是巨大的,但这些变化本身很容易在你自己身上复制。如果你决定向你的站点添加长格式的内容,你一定要有合适的工具。这里有一个第三方工具和插件的列表,它们可以把你的长篇内容从单调乏味变成普利策式的精彩。或者更接近它。)
1.使用 Evernote 将你的想法保存在一个地方
把 Evernote 想象成一个你永远不需要填充的记事本。你可以通过 Evernote 保存录音、手写笔记、任务列表、屏幕帽,甚至整个网页。

Evernote
它可以在你的不同设备上同步你的所有信息,这使得这个平台成为你的长期武器库的一个特别的工具(并且是一个重要的生产力助推器)。在另一个网站上看到一篇文章的想法?将它保存到 Evernote 的数字笔记本中。遇到一封很棒的电子邮件,可以作为营销技巧的范例?过会儿贴上标签。

Organized Evernote
如果你独自工作,基本计划是免费的,允许你每月上传高达 60 MB 的新笔记。它还有许多其他功能:
- 在两个设备间同步。
- 剪辑网页,图像,PDF 文件。
- 搜索图像中的文本。
- 与朋友和同事分享笔记。
- 使用密码锁定移动应用程序。
有团队?Evernote 的商业包提供了更多的灵活性和选择。CoSchedule 是我们稍后将谈到的公司之一,它使用 Evernote 来保持他们的团队有组织,并在灾难发生时保持一致。CoSchedule 的公共关系主管 Eric Piela 说:
每个过程都有记录。如果任何系统出现故障,我们都有快速恢复的信息。这些都可以在笔记本上找到。
因此,如果你正努力把你的团队或文章想法放在一个地方,Evernote 绝对是你寻找和保存长篇研究的必备工具。另外,整合 Evernote 和 WordPress 也不在话下。但是不要只相信我们的话。现在让我们来快速浏览一下 Evernote。
首先,去 Evernote 用你的电子邮件或谷歌账户注册一个账户。

Evernote sign up
如果你使用谷歌账户,你可以登陆这个屏幕。如果是,请单击绿色的“创建帐户”按钮继续。

Create Evernote account
这将带您进入帐户设置的下一步。因为我们使用 Evernote 来保存我们文章的研究,所以选择右边的选项“组织内容”

Evernote organize content
接下来,选择“获取 Web 裁剪器”

Evernote web clipper
如果您想使用桌面应用程序,您也可以选择左边的选项来下载并安装它。这两个选项都将在新标签页中打开。我们一会儿会回到这个标签,所以现在让它打开。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
由于我们使用的是 Chrome,这是我们下一个屏幕的默认选项。Evernote 也是 ie 7+,Opera,微软 Edge 和 Firefox 的扩展版本。

Google Chrome Evernote web clipper
继续并在您选择的浏览器上完成安装。完成后,返回最初的欢迎屏幕,并使用右上角的“x”按钮关闭它。这是您的默认仪表板的外观。现在它有点简单,但是我们将在下一步中改变它。单击或最小化“入门”选项卡。

Evernote get started
现在,让我们做一些研究,并保存一个网页。举个例子,我们正在为最近的网站可用性指南写一个后续。所以我们转向谷歌,输入我的关键词(“用户体验提示”),然后找到我们喜欢的页面。
我们选定了" 7 个技巧来改善你的 UX 设计实践。当你找到你想保存的东西时,点击右上角的 Evernote 图标。

Evernote icon in Chrome
这将触发一个下拉菜单,使您能够以几种不同的方式保存页面:
- 文章作为一个整体(与网站的格式)
- 文章的简化版本
- 整版的铃声和汽笛声
- 一个书签
- 截图
现在,假设我们希望能够准确地引用这一页,选择第三个选项:“整页”当它创建和同步您的剪辑时,您会在右上角看到一个指示器。

Evernote full page
完成后,回到 Evernote 仪表盘,选择倒数第二个图标来访问你的笔记本。你应该会看到你的完全剪辑的网页等着你。

Evernote clip
现在你知道了。无论晴雨,您现在都可以参考该网页及其所有导航和设计功能,无论原始来源发生了什么变化。其他一些你可能也想试试的替代工具有 Google Keep 和 Trello vs Asana 。
但是有什么比一个永远不会丢的笔记本更好呢?它会在你工作时自动修正。为此,转向我们的下一个工具。
2.让语法让你的写作更流畅,更聪明
如果你曾经试着写一篇文章,后来发现你的非常有用的文字处理器做出了行政决定,将“教授”改为“拉紧”,你会喜欢上的语法。

Grammarly
部分个人编辑器,部分写作助手,部分动机教练,Grammarly 是一个即插即用的浏览器扩展,可以与大多数文本框无缝集成。这意味着,与 Jetpack 不同,你不必安装或启用 Grammarly 作为插件,在你打字时直接校对你的帖子。
真正让 Grammarly 从其他文字处理器中脱颖而出的是它的上下文智能。如果像“绷紧”和“教授”这样的同音词曾经给你带来麻烦,Grammarly 可以分析文本并为潜在的混淆单词或风格错误做出智能的相关建议。
不要把你写作的质量取决于运气或无效的文字处理器。尤其是长篇文章,无论你是多么优秀的作家,你肯定会错过一些东西。或者对于那些深夜写作的人来说。😉将语法添加到您的浏览器中进行校样,并在工作时润色您的副本。它是免费的,快速的,易于安装。
当你完成了你的作品的来源和校对,使用这第三个工具,通过检查你的可读性和优化你的关键字来对它进行最后的润色。
想要更多的工具和建议,你可以看看我们的另一篇文章:写作的最佳语法检查工具。
3.用 Yoast SEO 优化你的内容
试图了解 SEO 的来龙去脉就像试图在午餐前坐上迪士尼乐园的每一趟车。蒙着眼睛拉着一车盗窃癖狐猴。
也就是说,即使你是 SEO 专家或专业的狐猴饲养员,得到一点帮助也不会有坏处。这就是 Yoast SEO 插件的用武之地。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features

Yoast SEO WordPress plugin
不要仅仅依靠你的字数来吸引有机流量。使用这个插件来分析和标记你的关键词密度,元描述,被动语态,无关注链接等等。

Yoast analyzer
这个插件经常出现在最佳 WordPress 插件的“十佳”名单中是有原因的。你可以在这里查看我们详细的安装和充分利用 Yoast SEO 的分步指南。
因此,如果你还没有使用它来做一般的搜索引擎优化,那么就把它添加到你的网站上,给你的内容一些急需的分析和优化帮助。看看这些你也可以使用的其他 WordPress SEO 插件。
但是不要只是优化你的文案。忘记你的图片会对你的用户和排名产生灾难性的影响。
4.通过图像优化让您的图像更加流畅
根据 HTTP Archive 的数据,截至 2018 年 7 月,图片平均占整个网页权重的 43%。对于长篇文章,它很可能比这还要高!
所以,如果你的文章充满了视觉刺激,确保你的图片不会拖慢你的页面,弊大于利。没有适当优化的图像会使你的网页花费很长时间来加载。这对你的网站流量没有好处。
花 7 秒钟加载的页面很容易失去 30%的访问者。呀!

Bounce rate by page speed (Section.io)
就第一印象而言,长时间的加载对新访客来说是非常非常糟糕的。谢天谢地,这就是图像压缩插件的用武之地。你可以很容易地压缩你的图像而不牺牲它们的质量,这将使你的网页加载速度更快。
这里有几个我们推荐的 WordPress 图片压缩插件:
- Imagify (这是我们在金斯塔使用的)
- 短像素图像优化器
- Optimus 图像优化器
- WP Smush
- EWWW 云
设置好插件后,它会自动优化你上传的所有内容。重要提示:上面提到的所有插件都在异地优化图片,因此在压缩过程中它们不会影响你的 WordPress 站点的性能。
对于你想知道但不敢问的关于图像优化的一切,请查看我们深入的图像优化指南。
图像准备好了吗?现在你所需要的是一个“何时”和“何地”让你的长篇文章在路上展示。至于“何时”,请考虑尝试下一个工具。
5.用 CoSchedule 创建编辑日历
69%进行内容营销的企业依靠编辑日历来保持组织有序。📔无论你是作为一个独立创业者还是有一个小团队来发布你的内容,一个编辑日历可以帮助你规划何时、何地以及如何发布你的内容。
Asana 和 Trello 都是流行的工具。这里有一个特雷罗日历快速窥视。

Trello editorial calendar (Image source: Trello)
这是类似的阿萨纳日历。

Asana editorial calendar (Image source: Asana)
这两个平台都很强大,并提供免费计划来满足大多数小型企业的需求。然而,它们都无法与协同日程相提并论,原因很简单:协同日程有一个本地的、官方插件,它直接与 WordPress 绑定。
这是它在你的 WordPress 仪表盘上的样子。

CoSchedule WordPress editorial calendar
整洁,对不对?此外,CoSchedule 的插件还附带了其他功能,比如它的世界级标题分析器,让你的文章尽可能吸引人。
6.目录
当处理冗长的内容时,你可以通过提供一个方便的目录来帮助你的读者。多亏了简易目录插件,这才成为可能。这是一个简单的解决方案,符合维基百科风格的格式,尽管它也可以通过定制 CSS 来满足您的需求。
Table of contents
或者你可以手动创建一个目录,就像我们在博客上使用锚标签一样。
7.读后时间
如今,拥有长阅读量的网站有一个共同的趋势,那就是包含普通人阅读一篇文章的时间长度。使用阅读时间 WP 插件将它添加到你的站点。你可以用多种方式显示时间,让你的网站看起来更像媒体。双赢!
最后,让我们来看看一些令人敬畏的主题,它们让长篇内容轻而易举地展示出来。
2 个长格式的主题
如果你想在 WordPress 上创作出引人注目的长篇文章,你需要选择一个很棒的主题。这里有两个选项可以帮助你的内容吸引观众的注意力。当然,您可以创建任何主题的长篇文章,但这些文章完全是针对长篇内容构建的。
1.让你的作品闪耀类型学的光芒
恰如其名,类型学是一个为写作做好准备的主题,它将你的文章放在基座上,让你的文字主宰页面。如果寻找特色图片的想法让你汗流浃背,这个主题非常适合你。它的特点是漂亮的布局,有或没有封面图片。
Typology WordPress theme
如果你包含了封面图片,你的文字仍然会占据中心位置。这个主题使用滚动效果来保持你的文本在用户注意的最前面。对于那些希望将长篇文章添加到其内容策略中,同时仍然享受无缝整合的好处的企业来说,类型学是理想的选择。而且,它完全移动响应。
《类型学》的平均评分为 4.96 分(5 颗星),49 美元的价格对钱包来说也不算太贵。
2.保持它的简单和整洁
来自 Array 的 Typable 是一个极简主义者的梦想,被构建成一个方便的、以内容为中心的主题。它干净、明快,给你一流的留白构图。
除了漂亮简单的设计,这个主题很容易定制,非常适合展示较长的内容。
Typable WordPress theme
它有一个超级时尚的下拉导航菜单。凭借其平滑如丝的 AJAX 后期加载,这个主题开箱即用。如果你购买 Typable 作为独立产品,你将支付 49 美元。
摘要
太阳还没有落在矮柱子上。他们仍然有自己的位置。但是对长篇内容的旧禁令已经被大大解除了。新规则是这样的:如果你有话要说,尽可能多地说出来。基本上,不要让武断的指导方针决定你的内容的方向。相反,让你的内容成为你的向导。
使用长篇文章让你自己更轻松,让你的用户更愉快。长篇文章不仅仅是大量的文字墙。如果他们觉得自己是一篇标准的博文,那他们就是标准的博文。副标题、视觉元素和简单导航都是这类内容的显著特征。
写更长文章的首要原因?免费网络流量和 SEO。字数和有机排名有很强的相关性。Evernote、Grammarly、Yoast SEO、图像优化插件和 CoSchedule 都是优秀的工具,可以添加到你的内容工具箱中,在 WordPress 上创建优秀的文章。
寻找一个能让你的内容说话的主题?如果你是极简主义者,那就选择类型学。如果你稍微靠近中心,Typable 是一个长期的最爱。但是如果你想要主要的多功能性,任何 WordPress 主题都可以。
记住,长篇文章很长,并不意味着它们一定很无聊。使用本文中的工具和技巧,让你的文章更流行,并保持搜索引擎优化友好。第一印象只会出现一次。做一个好的。有了这种心态,就不会出错。
如何在你的 WordPress 站点上实现长篇文章?你正在使用什么工具?到目前为止,你遇到什么困难了吗?我们希望在下面的评论中听到你所有的尝试和成功!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
为什么以及如何在你的 WordPress 图片上使用有损压缩
根据 HTTP Archive 的数据,截至 2018 年 12 月,图片在桌面和移动设备上平均占网站页面权重的 40% 。这是巨大的!😮当谈到新的移动优先指数和性能时,图像优化在你的 WordPress 网站加载速度上扮演着关键角色。图像压缩是你可以实现的最简单的优化之一,反过来,它也将产生最大的影响。本质上,这需要通过使用两种流行的压缩形式来减小图像的文件大小:有损和无损。 WEBP 支持两种压缩方式!
今天,我们将深入研究这两种类型的图像压缩,并讨论我们建议您使用哪一种。这可能因你经营的业务类型而异。
有损压缩
第一种压缩形式是有损压缩。有损压缩包括删除图像中的一些数据。因此,这意味着您可能会看到质量下降(质量下降或一些人所说的像素化)。所以你必须小心你在多大程度上降低了你的形象。不仅仅是因为质量,还因为你不能逆转过程。当然,有损压缩的一个很大的好处,也是为什么它是最流行的压缩方法之一,就是你可以极大地减少文件大小。
- JPEGs 和 gif 都是有损图像格式。
- JPEGs 非常适合需要快速加载的网站,因为您可以调整质量水平,以达到质量和文件大小的良好平衡。
(建议阅读: JPG vs JPEG:了解最常见的图像文件格式)
WordPress 自动压缩图像
你知道吗,当你上传图片到媒体库时,WordPress 会自动压缩你的图片。默认情况下,WordPress 会自动将图片压缩到原始大小的 90%。然而,在 WordPress 4.5 的中,他们将这一比例提高到了的 82% ,以进一步全面提高性能。如果你想知道为什么你的图片在新安装的 WordPress 上看起来有点像素化,这就是原因。
虽然自动压缩很棒,但我们普遍认为,82%对网站性能的影响远远不够。因此,如果你想的话,你可以通过添加下面的过滤器到你的主题的functions.php文件中来禁用这个选项。记住,在编辑你的网站之前,一定要先备份。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
add_filter( 'jpeg_quality', create_function( '', 'return 100;' ) );
如果你想增加 WordPress 的自动压缩率,你可以添加过滤器并减少原始文件的百分比,比如下面例子中的 70%。
add_filter( 'jpeg_quality', create_function( '', 'return 70;' ) );
记住,这些不会影响已经上传的图片。你需要使用类似的插件重新生成缩略图来将其应用到你现有的媒体库。或者更好的是,我们简单地建议不要去管你的主题,简单地使用一个图片优化插件(我们将在下面深入探讨)或者在上传之前进一步压缩你的图片。
使用“保存为网页格式”压缩图像(软件)
您可以使用 Adobe Photoshop、Affinity Photo、Affinity Designer 或其他图像编辑器等工具来调整图像的质量设置(如下所示)。在大多数工具中,这位于“保存到 web”或“导出设置”下

Change quality of photo
如果我们稍微比较一下有损压缩率,我们可以看到 50%看起来很棒。33%在一些背景细节上开始变得有点模糊(但会很不明显),5%显然是不可接受的。这只是一个例子,说明为什么 WordPress 中的自动 82%不够用。你可以并且应该以更高的速率压缩文件,以进一步减小文件大小。
- original.JPG 2.82 兆字节(2000 像素乘 1463 像素)
- 有损压缩-1。JPG:227 KB(2000 像素乘以 1463 像素) 91.95%的缩减率
- 有损压缩-2。JPG:185 KB(2000 像素乘以 1463 像素) 93.44%的缩减率
- 有损压缩-3。JPG:5kb(2000 像素乘以 1463 像素) 99.82%的缩减率

Lossy compression comparison
假设您选择使用压缩了 50%的版本。文件大小为 227 KB,肯定比原来的 2+ MB 文件小很多。然而,如果这只是一个页面上 15 个以上图片中的一个,那就不太好了。一般来说,如果可能的话,最好将所有图像保持在 100 KB 以下。在我的情况下,你应该可以去小得多。所以这也是调整图片尺寸的重要之处。50%的图像先缩小到 1251 像素乘以 916 像素,大小只有 95 KB。
但是记住,你可能不想一直缩小你的图片,因为从 WordPress 4.4 开始,它现在有了对响应图片的支持(CSS 没有缩小)。WordPress 自动为上传到媒体库的每张图片创建不同大小的图片。通过将图像的可用尺寸包含到一个srcset属性中,浏览器现在可以选择下载最合适的尺寸并忽略其他尺寸。请看下面你的代码的实际样子。

srcset responsive images example in code
所以随着现在越来越多的 HiDPI 显示器,找到一个令人愉快的媒介会很好。比如说你的网站的栏或格大小的两倍或三倍,但仍然小于原来的大小。浏览器将根据设备的分辨率显示正确的选项。
谷歌推荐有损压缩
你用谷歌页面速度洞察力吗?如果是这样,你可能对“优化图像”的警告很熟悉早在 2017 年,谷歌实际上更新了他们的文档,现在推荐使用有损压缩作为进一步提高网站速度的方法。

Google PageSpeed Insights optimize images warning
如果你想摆脱那些警告,最简单的方法之一就是使用有损压缩来安抚谷歌。
无损压缩
现在是时候进入第二种形式的无损压缩了。与有损压缩不同,无损压缩不会降低图像的质量。这怎么可能呢?这通常是通过删除不必要的元数据(由捕获图像的设备自动生成的数据)来完成的。然而,这种方法最大的缺点是你看不到文件大小的显著减少。也就是说,久而久之会占用大量磁盘空间。
- RAW、BMP、GIF 和 PNG 是无损图像格式。
- 您可以使用 Photoshop、 FileOptimizer 或 ImageOptim 等工具在桌面上执行无损压缩。
- 有些插件会对图片应用 Gzip 压缩(缩小图片)。
Kinsta 用户可以利用内置在 MyKinsta 仪表板 中的 代码缩小功能 。这使得客户只需点击一下,就可以轻松实现 CSS 和 JavaScript 的自动缩小。这有助于提高网站速度,无需任何人工操作。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
如果我们稍微比较一下有损压缩率,我们可以看到,使用无损压缩时,不会损失任何质量。然而,图像的文件大小仅减少了 10.84%。相比之下,使用有损压缩时超过 90%。
- 原创。JPG:227 KB(2000 像素乘 1463 像素)
- 无损压缩。JPG:203 KB(2000 像素乘 1463 像素)

Lossless compression comparison
哪种压缩方式比较好?
这个问题的答案其实取决于你。对于大多数用户来说,我们建议使用有损压缩,因为你可以轻松地将图像压缩超过 70%(有时甚至超过 90%!)而没有太大的质量损失。在一个页面上乘以 15 张图片,它将在减少你网站的加载时间上起到重要作用。不仅如此,有损压缩将确保你利用尽可能少的磁盘空间。这反过来意味着你可以节省托管费用。
无损压缩是给那些承受不起任何质量损失的人的。摄影师、美食博主和模特只是想到的几个依靠像素完美的图像谋生的人。在这些情况下,你必须把你的图片放在 CDN 上。由于其规模,你甚至可能需要将它们卸载到第三方存储服务,如亚马逊 S3 或谷歌云存储。
如何在 WordPress 中使用有损压缩
如果你仍然对有损和无损感到困惑,不要担心,有很多很棒的图像优化 WordPress 插件可供你选择,它们可以自动应用有损压缩:
注意:上面列出的所有服务器都使用自己的第三方服务器来压缩图像。出于性能原因,您应该始终在异地批量压缩映像。👍
我们在 Kinsta 博客上使用了 Imagify ,因此我们将向您展示它是如何工作的。他们有一个免费的计划,但即使是他们的专业计划定价也非常合理。我们优化了相当多的图像,我们使用“精简”计划(每月 1 GB)就可以了。按年支付,每月不到 4.25 美元。
Imagify 有三种不同的优化级别:
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
- 正常:这种模式使用无损压缩,这意味着您的图像不会损失任何质量,但它们的大小也不会减少太多。
- Aggressive: 这种模式使用有损压缩,极大地节省了初始重量,图像质量略有下降。大多数时候它甚至不明显。
- Ultra: 此模式使用有损压缩,并应用所有可用的优化来实现最大的图像压缩。这将大大节省初始重量,但您很可能会注意到一些图像质量下降。

Imagify settings
我们在 Kinsta 使用主动模式,通常会看到根据映像节省 60-70%的成本。注意:我们实际上使用 png 比 JPEGs 多得多,因为我们的大多数图像是图标和插图,而不是照片。

Image compression file savings
您可以在上传时启用自动优化图像(我们建议您不要忘记)或在媒体库中使用它们的批量图像优化器。你也可以让它备份原始图像。这使您可以在以后将图像转换到其他优化级别,甚至恢复原始图像。如果您不使用此功能,我们建议您将其关闭以节省磁盘空间。
你通常应该事先调整你的图像大小,但是如果你忘记或者没有时间,Imagify 确实有一个调整更大图像的功能。除了有损压缩,这是另一个大的文件大小节省!

Imagify resize images
事实上,我们最近才在整个 WordPress 媒体库上使用了批量图像优化功能。正如你所看到的,刮掉了 700 多 MB!这对于前端性能来说意义重大。

Bulk image optimization savings
速度测试
我们来做个小测试吧!由于我们经常看到用户上传未经压缩的全分辨率图像,我们将对这种情况对您网站整体性能的影响做一些比较。
测试 1-原始未压缩
我们首先上传了 10 张未压缩的图片。然后我们在 Pingdom 上运行了 5 次测试,取平均值。我们可以看到总加载时间为 3.04 秒,总页面大小为 28.4 MB。
- uncompressed-1.jpg(2.82 兆字节)
- uncompressed-2.jpg(2.82 兆字节)
- uncompressed-3.jpg(2.82 兆字节)
- uncompressed-4.jpg(2.82 兆字节)
- uncompressed-5.jpg(2.82 兆字节)
- uncompressed-6.jpg(2.82 兆字节)
- uncompressed-7.jpg(2.82 兆字节)
- uncompressed-8.jpg(2.82 兆字节)
- uncompressed-9.jpg(2.82 兆字节)
- uncompressed-10.jpg(2.82 兆字节)

Speed test uncompressed (Pingdom)
测试 2–压缩
然后我们再次上传了完全相同的图片,但是这次我们在 Imagify 插件中启用了“自动优化”。然后,我们在 Pingdom 上再次运行了 5 次测试,并取平均值。
- compressed-1.jpg(69.3 KB)
- compressed-2.jpg(69.3 KB)
- compressed-3.jpg(69.3 KB)
- compressed-4.jpg(69.3 KB)
- compressed-5.jpg(69.3 KB)
- compressed-6.jpg(69.3 KB)
- compressed-7.jpg(69.3 KB)
- compressed-8.jpg(69.3 KB)
- compressed-9.jpg(69.3 KB)
- compressed-10.jpg(69.3 KB)
我们可以看到总加载时间现在是 522 ms,总页面大小为 901.4 KB。因此,我们的有损压缩图像减少了 82.83%的页面加载时间!😮总页面大小也大幅缩减了 96.83%。多亏了 Imagify,我们的图像仍然看起来质量很高。

Speed test compressed (Pingdom)
摘要
一旦你确定了你的网站上需要的图像质量,你就可以选择是使用有损压缩还是无损压缩。同样,对于那些更关心速度而不是质量的人,我们推荐使用有损压缩。请记住,如果你找到正确的平衡,有损压缩图像可以看起来很美。如果你需要像素完美的图像,那么你应该总是选择无损压缩。
你有什么想法?你在你的 WordPress 站点上使用有损压缩还是无损压缩?请在评论中告诉我们。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
有损与无损压缩:两种格式的初学者指南
数字图像是网络固有的一部分,没有一些媒体很难创造任何内容。不起眼的静止图像是为你的作品提供额外背景的绝佳方式。
但是,如果不进行优化,图像的文件大小可能会非常大。有损压缩和无损压缩是一个常见的考虑因素,因为它们都可以减小图像的大小,尽管也需要考虑质量的权衡。
您几乎总是需要对图像进行一些压缩。这可以将质量保持在您指定的可接受水平,同时降低文件大小。选择正确的压缩级别将取决于您的最终目标和要求。
在这篇文章中,我们将看看有损压缩和无损压缩。自始至终,我们将讨论图像“成形”的过程,什么是压缩,以及优化图像的许多其他方面。
查看我们的视频指南有损与无损压缩
有损和无损的区别
当谈到任何数字图像压缩,有几种不同的格式可供选择。有时这些会有其他的名字,这取决于许多因素。但是,在核心层,您会发现两种类型:
- 有损压缩:这里的目标是为图像提供尽可能小的文件大小。因此,图像质量通常在优先级列表中处于较低的位置。
- 无损压缩:使用这种压缩格式,您仍然会发现文件大小大幅减小,但图像不会出现伪像和其他问题。
在大多数情况下,您关于使用哪种格式的决定将归结为您的最终目标:您想要小文件,还是您的重点是保持质量?
有损压缩会从图像中永久删除它认为不必要的数据。它使用许多不同的技术来实现这一点,从而使文件变得更小。
无损压缩也会删除数据,但如果需要,它可以恢复原始数据。目标是保持高质量,同时减小文件大小。
有几种方法可以实现这一点,但结果往往是一样的。为了找到满足您需求的正确选项,让我们先后退一步,回顾一下图像和压缩的基本知识。
数字图像的元素
像软件和网络开发一样,通常有一个“堆栈”将图像从相机上传到网络。
图像从“原始”数据开始(因此得名 raw)。这类似于应用程序的代码:代码片段、线条和值转化为带有颜色、图像占位符、动态元素等的背景。
对于图像,RAW 文件根据相机制造商、编辑软件、色彩空间算法等因素呈现略有不同的图像表示。在这里,您可以编辑图像并将其导出为几种文件格式之一(稍后将详细介绍):

An example of editing a RAW file in Capture One.
标准数码图像由几个不同的元素组成:
- 文件类型:不同的文件类型可能适合您的最终图像,也可能不适合。关键是为应用程序选择最合适的文件类型。
- 分辨率:你经常会看到用百万像素(MP)来表示,但你也会用到每英寸像素(PPI)或每英寸点数(DPI)。分辨率越高,质量越好,但也会增加初始文件的大小
- 位深:这个方面决定了一个图像中的颜色信息。低位深度只能呈现几种颜色,而高位深度可能一次呈现数百万种颜色。一般来说,越高越好。
- 尺寸:这是图像所占据的物理空间。例如,1,000 像素 x 500 像素可以定义图像的总大小。
- 色彩空间:这是一种决定色彩如何显示的算法。每个色彩空间的设置都不一样,往往会归结为摄影师的喜好。
这些元素结合在一起,形成不同质量的最终图像。例如,大尺寸、高分辨率、高位深度的 JPEG 照片将提供最高的质量和清晰度:

An image with high quality.
相比之下,即使图像尺寸很大并且能够显示大量颜色,但在低分辨率下看起来也很差:

An image with low quality.
这种平衡就是在应用压缩之前开发核心映像的方式。然而,您用于图像的格式对最终质量有很大的影响。
网络图像优化如何工作
因为图像压缩在一般意义上是相同的,所以您可以将标准规则应用到为 web 优化图像的方式中。
我们在 Kinsta 博客的其他地方讨论了很多这些概念,但是有必要给出一个快速总结以供参考:
- 使用 72 PPI 分辨率,因为这是网络的标准。出于存档的原因,您可以使用更高的 PPI/DPI,但是我们假设您发布到 web。
- 将图像的“长边”设置为 2048 像素,因为这对于许多不同的应用程序来说是最佳的。
- 如果可以的话,使用 8 位颜色深度。
- 在发布之前,通过压缩和优化工具运行图像。
这是一个简单的格式,可以给你一致的结果,虽然压缩和优化是我们将在本文的其余部分展开。
为此,让我们来看看有损压缩和无损压缩的优缺点。
图像压缩如何帮助你的网络图像
一般来说,“压缩”将最小值和最大值挤压得更近。例如,压缩会提高音乐中的最低音量,降低最高音量。这使得平均音量对耳朵来说更大。
对于图像,压缩更多的是一个还原过程。这意味着在保持尽可能高的质量的同时,更加强调从图像中提取数据以减小文件大小。
有许多不同的专有算法来帮助减少图像文件的大小。在许多情况下,这些都是特定公司的专利。您会发现许多“有损”和“无损”压缩标准,每种标准都有独特的描述符:

The compressions options within ShortPixel.
尽管如此,应用图像压缩有很多好处,并不仅限于特定的格式:
- 您可以保持较小的文件大小,这将提高您的站点的性能。
- 通过扩展,您站点的服务器将有更少的工作要做,影响性能。
- 小文件有助于减少服务器排放。因此,你有助于创造一个可持续和道德的未来。
- 根据您选择的算法和压缩质量,您可以显示近乎完美和可比的质量。
就像创建一个可共享的图像,使用不同的压缩值,使用特定的公司,以及选择正确的算法,对于找到适合你的结果是至关重要的。
有损压缩的利与弊
有损压缩减小图像的文件大小,几乎排除了所有其他方面。该算法的工作方式是永久删除数据。这可能像听起来那样具有破坏性。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
虽然我们不会过多讨论具体细节,但要知道有损压缩移除的一些数据在图像中是可见的。这个想法是以较轻的重量提供原始高质量图像的最佳表现,这意味着一些数据不会被削减。
一般来说,使用有损压缩有几个好处:
- 文件很小,在某些情况下,小于 10 千字节(KB)。
- 在许多情况下,质量的损失是可以接受的,尽管存在伪像。
这给我们带来了使用有损压缩的负面影响,即无论压缩多少,图像质量都会下降:

A compression slider for a JPEG image.
在某些情况下,您会发现色带(颜色阴影没有以正确的方式呈现)和边缘清晰度的损失是可见的。颜色越少的图像显示的越少,但是清晰度的降低仍然存在。
此外,图像质量下降是压缩过程的一个永久特征。这意味着以后没有办法逆转这种影响。
尽管有缺点,有损压缩对网站和你的站点的性能来说是极好的。微小的文件大小并不总是导致颗粒状的图像,尽管你可以(当然)走极端:
An example of an overly compressed image.
然而,有损并不是唯一的选择。无损压缩是注重质量的网站所有者的一种选择。
无损压缩的利弊
无损压缩做到了它在标签上所说的:在不影响视觉质量的情况下,尽可能压缩图像的文件大小。这是通过移除图像元数据来实现的,这会占用不必要的空间:

An image’s metadata.
无损压缩算法也寻找重复的像素序列,然后编码一个快捷方式来显示它们。比如说“命令行界面”您通常会定义它的缩写一次,然后使用“CLI”(或您选择的缩写)以闪电般的速度引用它
无损压缩以同样的方式工作,因为它的破坏性更小。虽然删除元数据是不可逆的,但一些压缩是可逆的,这使它成为一种适用于许多用途的灵活算法。
使用无损压缩的优势在于保持质量:
- 与所有其他算法相比,无损压缩保留了图像的最高质量。
- 无损对于存档来说是极好的。例如,摄影师可以用保存最多数据的图像来平衡存储资源。
- 无损是视觉艺术的首选压缩算法:摄影、图形设计、数字艺术等。将无损算法与适当的深度和分辨率相结合,可以实现几乎“一对一”的复制。
然而,关于无损压缩如何服务于特定领域,有一些事情需要注意:应用范围很小。这降低了它的整体可用性。
所有的 Kinsta 托管计划都包括来自我们资深 WordPress 开发者和工程师的 24/7 支持。与支持我们财富 500 强客户的同一个团队聊天。查看我们的计划!
以下是无损压缩的一些其他缺点:
- 如果网站使用许多图像,无损压缩可能不是显示它们的最佳方式。这是因为在大多数情况下,在这些类型的情况下,您会希望重视较小的文件大小。
- 虽然压缩会减小文件大小,但无损算法对图像数据的改变不如有损算法多。正因为如此,你可能只会看到微小的尺寸减小,而不是极端的瘦身效果。
接下来,我们将看看这样做的最快(也可能是最好的)方法。
如何在有损和无损之间做出选择
至此,您理解了有损压缩和无损压缩之间的区别。但是,您可能仍然不知道在您的站点上使用哪种算法是最好的。
有两种情况需要考虑:
- 对于 web 上的大多数用例,有损压缩是可以接受的。
- 如果您想要显示摄影或拍摄的艺术,无损压缩将为您提供更好的服务。
这些考虑依赖于使用一种标准的 web 图像格式,如 JPEG、PNG 或 GIF。但是,对于更现代的格式,如 HEIC 和 WebP,您的压缩需求可能会有所不同。
我们甚至可以说,除非你在网站上展示照片,否则有损压缩应该是你的默认选择。默认情况下,WordPress 压缩图像,这进一步说明有损压缩适用于几乎所有应用。
使用在线压缩服务优化您的图像
在网站上展示图片之前,有很多方法可以压缩图片。例如,您可以选择在编辑阶段应用压缩。无论如何,这可能是转换原始格式的副产品。
然而,一个受欢迎的选择是许多在线服务之一。每一个都将提供一个算法选择和一个典型的用户界面(UI)。更重要的是,大多数都有一些免费服务,至少在你提交之前可以试用一下。
我们在关于图像优化的文章中介绍了一些选项,尽管这些是连接到应用程序编程接口(API)的特定于 WordPress 的插件。好消息是许多插件也提供了在线界面。例如,考虑短像素:

The ShortPixel interface.
在这里,您将把图像拖到上传器上,然后等待应用程序压缩和处理它们。但是,您需要首先选择算法,因为这个过程会立即开始。
选择很简单:两种形式的有损压缩(“有损”和“光泽”),以及一个无损选项。ShortPixel 的界面很好地解释了每种算法之间的差异,你可以在几秒钟内下载图像。
虽然两者都能满足你的需求,但相比 ShortPixel,Imagify 的界面看起来更光滑、更专业。此处还有三个“压缩级别”—普通、激进和超级:

The Imagify interface.
这里稍有不同的是,Imagify 从无损压缩开始,逐步发展到带有大量伪像的有损算法。然而,有几个其他选项是你在其他解决方案中找不到的。
首先,您可以为您的图像保留完整的 EXIF 数据,甚至在转换后调整它们的大小。这有时是非常宝贵的,尤其是如果您想要应用可能会移除 EXIF 数据或限制调整图像大小的压缩级别。
就像它神话中的名字一样,北海巨妖可以处理你的图像并应用各种类型的压缩。大多数用户会选择有损或无损类型。

The Kraken interface.
然而,还有一种专家模式:

The Kraken Expert mode options.
这使您可以根据自己的需要调整压缩,以及其他选项。例如,您可以调整 JPEG 和 PNG 压缩级别,选择保留图像中的元数据,甚至可以使用色度二次采样来进一步更改颜色。
摘要
图像可能看起来像是你网站的一个简单方面:你拿一个文件,把它上传到 WordPress,然后添加一个图像块来显示它。
然而,在为网络准备图片的过程中,有比你可能意识到的更多的东西。您选取的压缩格式会影响文件大小、图像质量等。
这篇文章讨论了有损压缩和无损压缩,并总结了你应该选择哪一种。尽管在质量和大小之间走钢丝,有损压缩对于网络上的大多数用例来说是完美的。摄影师或那些担心篡改图像质量的人会希望使用无损压缩,尽管在文件大小方面好处较少。
在有损压缩和无损压缩的斗争中,你站在哪一边?请在下面的评论区告诉我们你的想法!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
Magento vs WooCommerce:哪个更好?
现在是涉足电子商务世界的最佳时机。然而,如果你正在考虑网上销售,弄清楚使用哪个平台可能会具有挑战性。许多人发现自己在 Magento 和 WooCommerce 之间争论不休。
两者都是功能丰富、广受欢迎且功能强大的平台。要确定哪一个最适合你,只需更多地了解每个选项所能提供的内容。
在本帖中,我们将向您介绍 Magento 和 WooCommerce,并讨论它们的主要特性。然后,我们将在一些重要因素上比较这两个平台,包括安全性和定价。
我们开始吧!
查看我们的视频指南 Magento vs WooCommerce
Magento 和 WooCommerce 概述
Magento 和 WooCommerce 是最受欢迎的两个自主经营的电子商务平台。它们都有很多优点,也有各自的缺点。在我们进入细节之前,让我们快速看一下每个平台。
Magento 简介

Magento.
Magento 是一个专门为电子商务打造的 T2 内容管理系统。2018 年被 Adobe 收购,也被称为“Adobe Commerce”这个平台有些复杂,因为它主要面向开发人员。虽然它不是最适合初学者的选择,但如果你精通技术,并希望创建大规模、复杂的电子商务项目,它可能是一个强大的解决方案。
Magento 有两个版本: Magento 开源(也称 Magento 社区)和 Magento 商业(也称 Magento 企业)。在本文中,我们将主要关注 Magento 开源,因为它与 WooCommerce 有所不同。
Magento 的一些主要功能包括:
- 支持无限的产品
- 数百个免费扩展
- API 集成
- 主题和布局系统
虽然 Magento 是一个灵活和直观的平台,但它可能不是初学者的最佳选择,因为它涉及到一点学习曲线。它更适合开发专业人员。
网络商务简介

WooCommerce.
WooCommerce 于 2011 年推出,是全球使用最广泛的电子商务平台之一。这是一个基于 WordPress 的开源插件,WordPress 是最流行的 CMS。
它非常用户友好,设置过程快速简单可以让你在几分钟内创建自己的在线商店。它还提供了大量的扩展来增强内置功能。
WooCommerce 有许多有用的功能,包括:
- 无限产品
- 庞大的扩展库
- 免费和高级主题
- 快速简单的设置过程
- 内置安全功能
- 成吨的支付处理器
- 有用的文档
网络商务没有太多的缺点。然而,主要的缺点是,如果你还不是 WordPress 用户,CMS 可能需要一些时间来适应。这意味着你必须学会如何浏览 WooCommerce 和 WordPress。
Magento vs WooCommerce:势均力敌的比较
现在我们已经介绍了每个平台,是时候更深入一点了。下面,我们将仔细看看 Magento 和 WooCommerce,看看他们在关键方面的比较。
支付网关
如果你想改善顾客的购买体验,就必须为他们提供便捷的支付网关选项。当选择支持最流行的支付处理器的平台时,这更容易做到。
Magento 和 WooCommerce 都提供了大量的选择。WooCommerce 内置了对 PayPal、T2、支票、线下和银行转账以及现金选项的支持。它还为其他支付网关提供扩展,包括 Amazon Pay、Square、Google Pay、支付宝等:

WooCommerce payment gateway options.
同时,Magento 为 PayPal、Authorize.net 和 Braintree 提供开箱即用的支持:

Magento payment gateway options.
有针对 Stripe、2Checkout、Skrill、Google Checkout 的扩展,以及针对其他支付网关的更多扩展。
这一类没有真正的赢家。每个平台都内置了对一些最大的支付网关的支持,以及大量的附加功能。
易用性
在电子商务平台中,易用性是需要考虑的关键因素,尤其是如果你是初学者。在这个部门中,WooCommerce 名列前茅。
正如我们提到的,Magento 更适合拥有技术知识的开发者。因此,对于普通用户来说,这并不容易。例如,你需要学习一些基本代码和相当多的技术术语。这是一个更复杂的平台,需要一些开发技能。
另一方面,WooCommerce 是一个对初学者非常友好的解决方案,尤其是如果你已经熟悉 WordPress:

WooCommerce backend.
要将它添加到你的站点,你需要去插件>添加新的。一旦激活,WooCommerce 将带你通过一个设置向导。
Magento 还有一个用户友好的仪表盘和一个直观的导航系统。然而,设置和配置过程并不是无缝的。你需要开发知识来设置它。
比如你需要用命令行来安装,设置一个符合 Magento 要求的服务器。此外,如果你已经熟悉 WordPress,学习一个全新的平台会很有挑战性。
速度和性能
网上商店的速度和性能对你的成功起着至关重要的作用。毕竟,如果你的页面需要很长时间才能加载,或者你的结账过程滞后,客户就不会逗留。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
Quanta research 的一项研究显示,Magento 的加载速度比 WooCommerce 快。然而,比较 Magento 和 WooCommerce 的速度和性能可能会很棘手,因为有很多因素在起作用。例如,你使用的主机方案,你安装了多少插件和扩展,你的图片是否被优化,这些都会影响一个网站的速度。WooCommerce 确实有一些极快的主题。
安全性
确保你的商店是安全的是最重要的在线业务。安全风险空前高涨。您需要选择一种解决方案来帮助保护您的数据和客户的个人信息,例如支付详情。
Magento 和 WooCommerce 都是开源平台。这意味着店主需要采取积极主动的措施来保护他们的网站。
也就是说,Magento 通常比 WooCommerce 需要更少的插件。反过来,这意味着引入安全漏洞的风险更小。它为安全功能提供的扩展往往比 WooCommerce 更完整。
Magento 还提供专用的安全补丁。然而,重要的是要注意这些并不容易实现,你可能需要专业开发人员的帮助。如果你不介意为商店的安全提供帮助,Magento 可能是更好的选择。
可量测性
当谈到比较 Magento 与 WooCommerce 的可扩展性时,Magento 是一个强有力的竞争者。然而,这仅适用于商业版本,而不是免费的开源平台,这可能是有限制的。
有了 Magento Enterprise,您可以毫无问题地处理数千份订单。WooCommerce 也是如此。两个平台都支持无限的产品。
不管你选择哪个平台,重要的是要确保你选择了强大的电子商务主机,能够处理意想不到的流量高峰。例如,在金塔,我们提供高性能的 WooCommerce 托管计划。Magento 的开源版本是自我托管的,但是 Magento 企业版包括网络托管。
展开性
开箱即用,Magento 提供了大量令人印象深刻的功能。这包括多语言选项、多商店功能和复杂的可配置产品。
WooCommerce 默认没有那么多功能。然而,这两个平台都可以通过插件、主题和附加组件进行高度扩展。
WooCommerce Marketplace 提供数千种免费和付费扩展:

WooCommerce extension store.
你也可以在 WordPress 插件目录中找到更多的电子商务工具。同样,Magento 为提供了数千种扩展,既有免费的,也有付费的:

Magento Marketplace.
然而,当比较 Magento 和 WooCommerce 的可扩展性时,重要的是要注意高级附加组件的价格。总的来说, WooCommerce 插件往往比 Magento 的更实惠。另一方面,因为 Magento 的扩展更复杂,它们往往更强大。
需要一流的,快速的,安全的主机为您的新电子商务网站?Kinsta 提供超快的服务器和来自 WooCommerce 专家的 24/7 世界级支持。查看我们的计划
在 WooCommerce 上安装插件也比 Magento 容易。作为更复杂的平台,在 Magento 上设置和配置扩展通常需要 web 开发技能。
营销和搜索引擎优化
搜索引擎优化(SEO) 和在线营销是增加你的商店流量的重要部分,从而增加销售额。所以 Magento vs WooCommerce 的另一个重要考虑就是有哪些营销和 SEO 功能或选项。
WooCommerce 是建立在 CMS 的基础上的,最初是为了写博客。因此,它已经包含了发布帖子和其他内容营销活动所需的许多特性和功能。它还可以与几十种不同的营销和 SEO 插件配对,以帮助进一步优化内容,如 Yoast SEO :

Yoast SEO.
默认情况下,Magento 没有内置博客功能。为此,你需要一个扩展。然而,与 WooCommerce 类似,你可以使用大量的插件来帮助优化你的网站,并将其与营销工具整合,如 Google Analytics 。
Magento 确实提供了先进的营销工具。然而,他们不包括在社区版本中,只有企业版。
支持
由于应用如此广泛,Magento 和 WooCommerce 都有庞大的支持社区。这意味着在网上寻找资源和问题的答案相对容易。
WooCommerce 提供了一个公共知识库,里面充满了有用的教程和指南:

WooCommerce documentation.
除此之外,只对付费扩展提供支持。对于 Magento 的免费版本,您可以在网上找到帮助:

Magento support documentation
只有购买 Magento Commerce 计划,才能通过电子邮件、电话或票务系统获得专门或直接的支持。对于更复杂的问题,您可能需要雇用开发人员。
定价
当您试图在平台之间做出选择时,成本可能是您做出决定的一个重要因素。Magento 和 WooCommerce 都是开源的,这意味着你可以免费下载和使用它们的核心代码。
然而,这并没有考虑定制或长期成本。例如,你可能计划使用主题和插件来扩展商店的外观和功能,而不是坚持使用现成的东西。
根据您购买的高级扩展,这些平台的成本可能会有很大差异。正如我们提到的,WooCommerce premium 扩展往往比 Magento 的更实惠。
Magento Enterprise 网站上不包含定价。然而,你可以预计每月支付大约 2000 美元。
对于 Magento 社区和 WooCommerce,你还需要考虑购买域名和托管计划的成本。然而,WooCommerce 仍然趋向于更便宜。
重温 Magento vs WooCommerce
至此,你应该对 Magento 和 WooCommerce 的区别有了扎实的了解。但是,在我们总结之前,让我们花点时间总结一下它们在关键领域的比较情况:
| | Magento | WooCommerce |
| 支付网关 | 内置选项加扩展(贝宝 Authorize.net,布伦特里等。) | 内置选项和扩展(PayPal、Stripe 等。) |
| 易用性 | 面向开发者 | 初学者友好的 |
| 速度和性能 | 变化 | 变化 |
| 安全 | 安全扩展和补丁(需要开发人员) | 定期更新、内置安全功能和大量安全扩展(免费和付费) |
| 可扩展性 | 支持无限数量的产品 | 支持无限数量的产品 |
| 扩展性 | 高度可扩展,有数千种扩展,但它们往往价格昂贵 | 数以千计的免费和高级扩展 |
| 营销& SEO | 可用扩展 | 内置博客功能;可用的 SEO 插件 |
| 支持 | 在线支持论坛;商务套装提供专门的支持 | 知识库;付费延期可获得专门支持 |
| 定价 | 免费(提供高级商业版) | 自由的 |
Magento vs WooCommerce- which one is right for your ecommerce store? 🤔🛒Click to Tweet ## 摘要
为你的电子商务业务选择一个平台不是一件容易的事情。有很多因素需要考虑,特别是当你比较 Magento 和 WooCommerce 时,这两者都是强大的解决方案,提供了很多东西。
如果你是一个小企业,没有太多的开发经验,WooCommerce 最有意义。然而,如果你精通技术,并且正在寻找更高级的解决方案,Magento 可能是一个可靠的选择。
关于 WooCommerce 和 Magento 的比较,你有什么问题吗?请在下面的评论区告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
2022 年 21 个最佳 Mailchimp 替代品(免费和付费选项)
在所有营销渠道中,电子邮件营销的投资回报率最高,每投入 1 美元,平均回报率为 42.24 美元。
尽管许多人知道 Mailchimp 是业内最广为人知的电子邮件营销工具之一,但它并不是每个企业的最佳选择。
这就是为什么在本文中,我们将涵盖所有适合您业务的主要 Mailchimp 替代方案。
准备好开始了吗?
Mailchimp 定价和功能
在我们讨论替代品之前,你应该了解 Mailchimp 能提供什么。
| 计划 | 定价 | 联系人 | 每月发送 | 用户 |
| 自由的 | 0 美元/月 | Two thousand | Ten thousand | one |
| 必需品;要素 | 9.99 美元/月 | Fifty thousand | Five hundred thousand | three |
| 标准 | 14.99 美元/月 | One hundred thousand | 1.2 米 | five |
| 溢价 | 299 美元/月 | 200,000+ | 3M+以上 | 无限的 |
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
为了能够公平地比较 Mailchimp 替代品,我们还需要检查它在每个价位提供的功能。
当 Mailchimp 发布的时候,电子邮件营销软件的世界是一个不同的地方。然而,时代变了。
Mailchimp 已经成为一个功能丰富的营销平台,整合了大多数主要的电子商务解决方案和广告平台,如脸书广告和谷歌广告。
下面让我们来看看它们最重要的一些特性。
| 特性 | 免费 | 要领 | 标准 | 溢价 |
| 电子邮件生成器 | ✔ | ✔ | ✔ | ✔ |
| 电子邮件模板 | ✔ | ✔ | ✔ | ✔ |
| 登录页面 | ✔ | ✔ | ✔ | ✔ |
| 细分和个性化 | ✔ | ✔ | ✔ | ✔ |
| 重新定位受众 | | | ✔ | ✔ |
| 电子邮件分析 | ✔ | ✔ | ✔ | ✔ |
| 动态内容 | | | ✔ | ✔ |
| 营销日历 | ✔ | ✔ | ✔ | ✔ |
| 基于行为的自动化 | | | ✔ | ✔ |
| 自定义编码模板 | | | ✔ | ✔ |
| 终身价值 | | | ✔ | ✔ |
| 调查 | ✔ | ✔ | ✔ | ✔ |
| 单步自动化规则 | ✔ | ✔ | ✔ | ✔ |
| 多步骤工作流程 | | ✔ | ✔ | ✔ |
| A/B 测试 | | ✔ | ✔ | ✔ |
| 多元检验 | | | | ✔ |
| 发送时间优化 | | | ✔ | ✔ |
| 电话支持 | | | | ✔ |
您不仅可以创建细分的活动,锁定废弃的购物车,使用各种模板创建精美的电子邮件,还可以填充目标受众,管理您的营销日历,以及创建复杂的自动化工作流程。
如果你正在努力充分利用 Mailchimp 界面中的这些功能,你可以在最终切换到另一个界面之前,阅读我们关于如何使用 Mailchimp 的初学者指南。
电子邮件营销是所有营销渠道中投资回报率最高的💰这意味着找到合适的工具至关重要。点击查看适合贵公司需求的 21 种 Mailchimp 替代产品。📈 点击推文
免费计划的 Mailchimp 替代方案
如果你没有被说服选择 Mailchimp,或者你对目前的服务不满意,你可能会想,我可以用什么来代替 Mailchimp?
下面我们列出了所有适用于刚刚起步的小企业和电子商务商店的 Mailchimp 替代产品。
1.HubSpot 电子邮件营销

HubSpot email
HubSpot 是一个一体化的 CRM 平台,包括一系列营销工具,如登录页面生成器、表单生成器,当然还有电子邮件营销工具。 HubSpot 电子邮件营销允许你创建移动优化的电子邮件活动,建立自己的定制模板,运行 A/B 测试,并提高点击率。
特征
- 电子邮件生成器(免费增值计划)。
- 电子邮件模板(免费增值计划)。
- 列表细分(免费增值计划)。
- 个性化(主题行、内容、链接、附件和行动要求。).
- 电子邮件分析(高级版)。
- A/B 测试(专业计划)。
- 营销自动化工作流程(专业计划)。
- 电子邮件比较报告(专业计划)。
免费计划
HubSpot 的免费计划包括每月 2000 封电子邮件和无限订户。您可以创建 25 个静态列表和 5 个智能列表。您还可以访问基于目标的模板,这些模板是专为您要发送的电子邮件类型而设计的。
HubSpot 的电子邮件营销工具由免费的 CRM 提供支持。除了存储你的订户信息,它还保存了你的联系人与你公司的每次互动的详细日志,无论是与你的网站页面还是与你的数字广告。CRM 允许您通过个性化来确保您的电子邮件尽可能相关,从而优化性能。
这个免费计划还包括增加你的邮件列表的工具。您可以使用线索捕获表单创建登录页面,甚至可以在您的网站上添加实时聊天或机器人小工具,以更动态的方式与您的访客互动。您还可以在 HubSpot 中管理和跟踪您的在线广告,并将您的投资回报率与您的其他营销工作联系起来。
付费计划和定价
HubSpot 为其整个营销平台提供三种付费计划:

HubSpot pricing
所有计划都附带免费联系人(1,000 个初级联系人、2,000 个专业联系人和 10,000 个企业联系人),之后您可以购买其他联系人的附加服务。
虽然它可能不是最便宜的选择,但先进的功能和集成使 HubSpot 成为 Mailchimp 的强大替代品,可以支持您的整个营销策略,远远超出电子邮件营销。
2.你是谁

Sendinblue
如果你还在寻找 Mailchimp 的替代品,Sendinblue 是另一个你可能想看看的平台,因为它提供了电子邮件营销和交易电子邮件的工具。
它有一个时尚,移动友好的电子邮件生成器,有许多高质量的模板,并提供细分,行为目标,再营销受众,这只是其中的几个功能。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 登录页面生成器。
- 细分和个性化。
- API / Webhooks。
- A/B 测试。
- 短信(单独定价)。
- 交易邮件。
- 邮件分析。
- 营销自动化工作流程。
- 电子商务整合/行为定位。
- 热图(必不可少)。
- 重新营销受众(谷歌广告、脸书广告)(溢价)。
- 聊天 (Premium)。
免费计划
免费计划包括电子邮件生成器和模板、高级细分、工作流、API、交易电子邮件等。
这个计划的缺点是,你每天限于 300 封电子邮件,并且 Sendinblue 品牌包含在你的所有电子邮件中。
一个独特的功能是,你可以结合短信和电子邮件,甚至在免费计划。
付费计划和定价
Sendinblue 的定价模式也是基于每月的电子邮件数量,而不是联系人数。

需要注意的一点是,即使是每月 25 美元的 lite 计划仍然在你所有的电子邮件中包含 Sendinblue 品牌。如果您需要删除它,您需要购买 Lite+付费附加组件或选择更高的计划。
3.邮件地址

MailerLite
MailerLite 是 Mailchimp 的替代品和竞争对手,专注于向客户提供更简单的电子邮件营销服务,因此得名 Lite。
它提供了细分、 A/B 测试、易于使用的电子邮件生成器和登陆页面生成器、自动化工作流程等等。
特征
- 电子邮件生成器。
- 登录页面生成器。
- 细分和个性化。
- 调查。
- 电子商务整合/行为定位( Shopify 或 WooCommerce )。
- 多用户帐户。
- 分析。
- 按时区交付(高级)。
- 自定义 HTML(高级)。
- 电子邮件模板(高级版)。
- 单击地图(高级)。
免费计划
免费计划包括每月多达 1,000 个联系人和 12,000 封电子邮件。您还可以访问大多数功能,包括电子商务集成、活动细分和 A/B 测试。
他们的免费计划是早期在线企业主和初露头角的电子邮件营销人员的绝佳选择。
你可以发送自动废弃购物车电子邮件,分割测试促销电子邮件,甚至跟踪你的电子邮件产生的收入。免费计划的唯一缺点是,你所有的电子邮件都将包含 MailerLite 标志。
付费计划和定价
MailerLite 只有一个不同价位的保费计划:

MailerLite pricing
和 Mailchimp 一样,价格随着你的联系人/订户数量而变化。在用户数量较少的情况下,其价格可与 Mailchimp 的“必需品”相媲美,即 1000 名或更少用户每月 10 美元。
但是一旦你的用户达到 10,000 或更多,它就开始变得非常便宜,10k 每月只需 50 美元,20k 每月 100 美元。
MailerLite 似乎是一个更实惠的 Mailchimp 替代品,特别是考虑到它的基本保费计划包括所有功能。
4.穆森德

Moosend
Moosend 将自己定位为一个一体化的营销平台,而不仅仅是一个电子邮件和自动回复软件。从很多方面来说,它是一个登陆页面生成器、电子商务集成和营销自动化工作流程。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 登录页面生成器。
- 电子商务整合/行为定位( WooCommerce )。
- 细分和个性化。
- 邮件分析。
- 营销自动化工作流程。
- 基于天气的推荐。
免费计划
Moosend 的免费计划是电子邮件营销行业中最好的免费交易之一。你最多只能有 1,000 个联系人或订户,但这与大多数其他 Mailchimp 替代品一致。
但这是与其他免费计划的相似之处。
您可以使用所有关键功能,每月可以发送无限量的电子邮件,并且 Moosend 不会在您发送的电子邮件中包含其品牌信息。
免费计划中唯一不包括的功能是交易电子邮件、 SMPT 服务器、托管登陆页面。您可以 A/B 测试活动、使用自定义电子邮件模板等等,而无需支付任何费用。
付费计划和定价
Moosend 提供三种不同的计划,除此之外,还有一个现收现付的选项(信用):

Moosend pricing
1000 名用户的月费起价为 8 美元(如果按年付费的话),包括上面列出的所有功能以及更多功能。
在较高的订阅点,它比 Mailchimp 最实惠的计划便宜得多,后者限制了一些关键功能。
5.邮件快递

MailJet
MailJet 不仅仅是一个电子邮件营销解决方案。
它还提供了一个电子邮件 API,将交易电子邮件嵌入到你的网络或移动应用程序中。此功能将允许您的应用程序发送里程碑电子邮件、升级确认、发票通知等等。
特征
- 电子邮件生成器。
- API / Webhooks。
- SMTP 中继。
- 交易邮件。
- 邮件分析。
- 交易短信(单独定价)。
- 在线支持(基本)。
- A/B 测试(高级)。
- 基于角色的权限(高级)。
- 自定义电子邮件模板(高级版)。
- 细分和个性化(高级)。
- 营销自动化工作流程(高级版)。
免费计划
MailJet 的免费计划非常基础,每月限量 6000 封邮件,每天只有 200 封邮件。您可以访问电子邮件编辑器、API 和分析。您发送的所有电子邮件都将包含 MailJet 品牌。
对于使用 API 的事务性电子邮件,这是一个不错的选择。例如,你甚至无法在同一天向 500 名订户发送促销邮件。在这个列表中有更好的电子邮件营销免费选项
一个独特的方面是,你可以有无限的联系,所以如果你有一个广泛的用户名单,但很少给所有人发电子邮件,这可能是一个好的选择,因为你可以在繁忙季节之间降级你的计划。
付费计划和定价
与 Mailchimp 不同,MailJet 根据你每月发送的电子邮件数量,而不是你的联系人总数来为其计划定价。
基本计划每月 9.65 美元起,按年计费,最多可发送 3 万封电子邮件。

MailJet pricing
与 Mailchimp Essentials 计划相比,基本计划的功能最少(您无法使用分割测试、细分或行为目标)。
6.Omnisend

Omnisend
Omnisend 是一个多渠道营销自动化平台,主要关注电子邮件功能。
此外,你还可以发送 Facebook Messenger 和 WhatsApp 消息、短信、网页推送通知等等。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 登录页面生成器。
- 细分和个性化。
- 邮件分析。
- A/B 测试。
- SMS(Pro–单独定价)。
- 网络推送通知(专业版)。
- 交易邮件。
- 营销自动化工作流程。
- 电子商务整合/行为定位。
- 重新营销受众(谷歌广告、脸书广告)。
- 自定义脸书观众(专业版)。
- 多渠道(Messenger、WhatsApp、短信、推送通知)(企业)。
免费计划
免费计划每月限发 15000 封邮件,但联系人数量没有上限。
与大多数其他 Mailchimp 替代方案不同,免费计划没有与电子商务或行为目标整合。例如,你不能创造一个放弃购物车的活动来赢回观望的顾客。
付费计划和定价
Omnisend 有四个不同的订阅级别,免费、标准、专业和企业:

Omnisend pricing
请注意,推送通知仅适用于 pro 计划,要访问 Messenger 和 WhatsApp,您需要直接使用 Omnisend 设置自定义企业计划。
短信遵循预付费模式,在美国每 100 条短信收费 1.5 美元。对于想要掌握全渠道营销的公司来说是个不错的选择。
7.发报机

Sender
Sender 是一款更简单的电子邮件营销工具,具有易于使用的界面和更适合中小型企业的功能。
正因为如此,它为他们的月费和现收现付计划提供了极具竞争力的价格,使自己成为 Mailchimp 最实惠的替代品之一。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- 网络推送通知。
- 电子商务整合/行为定位(WooCommerce)。
- CMS 平台 (Magento,WordPress)。
免费计划
该免费计划包括每月多达 2500 名订户和 15000 封电子邮件。此外,您可以从付费计划中访问所有发送者功能,没有任何限制。
与付费计划的唯一区别是,发送者在电子邮件中包括品牌和免费计划用户的选择加入表格。
付费计划和定价
Sender 的每月计划是迄今为止每个用户最便宜的,因为它包括所有功能,最低的用户层由免费计划覆盖。

Sender pricing
虽然它的功能有些有限,但它包括原生 WooCommerce 与购物车放弃活动的集成,以及基于购买历史的细分。因此,如果你,这可以是一个令人难以置信的成本效益的选择,同时还为您提供电子邮件营销的要点。
8.发送脉冲

SendPulse
Sendpulse 是另一个多渠道平台,包括电子邮件、推送通知、聊天机器人和短信。
一个问题是没有全面的多渠道计划,所以你必须针对竞争对手单独评估每个渠道的计划。
我们比较的主要焦点将特别是分析他们的电子邮件服务。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- API/Webhooks。
- 交易邮件。
- 网络推送通知(单独定价)。
- Facebook Messenger(单独定价)。
- 短信(单独定价)。
- 电子商务整合/行为定位(WooCommerce,Opencart)。
免费计划
免费计划只包括 1-500 名用户,并限制了一些功能。您将无法访问高级细分、用户访问级别或高级分析和报告。
但有了电子邮件生成器、模板、五个自动化规则和基本细分,早期企业完全有可能在不投资付费计划的情况下进行长期测试。
付费计划和定价
对于电子邮件营销,Sendpulse 提供单一的主要订阅,以及现收现付模式。
SendPulse 是,你可以利用网络推送通知(最多 10,000 名订户)和 Facebook Messenger(每月最多 10,000 条消息)的免费计划,将其作为一个多渠道平台,只需支付电子邮件的价格。
9.Zoho 活动

Zoho Campaigns
Zoho Campaigns 是来自大型 Zoho CRM &营销平台的电子邮件营销产品。它提供了强大的电子邮件营销功能,如细分,A/B 测试,动态内容,以及与 Zoho CRM 的本机集成。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- 电子商务整合/行为定位(WooCommerce, BigCommerce )。
- 原生 Zoho CRM 集成。
- 社交媒体发布。
- 多用户帐户。
免费计划
他们的免费计划包括多达 2,000 名订户、12,000 封电子邮件和每个帐户五个用户。它包括最基本的电子邮件营销功能,包括细分、a/b 测试以及通过合并标签和动态内容进行个性化。
但它不包括电子商务集成和智能营销自动化工作流程。
此外,Zoho 活动品牌将包含在您的所有电子邮件中。
付费计划和定价
Zoho 提供三种不同的支付计划,基于订阅者的月订阅,基于电子邮件的月订阅,以及现收现付。
唯一包括高级工作流程和电子商务集成的计划是基于订户的模式,所以这是我们将重点关注的一个。

Zoho campaigns pricing
从每月不到 5 美元开始,他们基于用户的计划价格合理。拥有比 Mailchimp essentials 稍好的功能,您会注意到订户越多的差异。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
如果你还需要一个带有营销和 WordPress 集成的现代 CRM,Zoho 可能是一个不错的选择。
Mailchimp 的付费替代品
如果你有一个已建立的电子商务商店或在线业务,你可能不会参与任何免费计划。下面,我们研究付费 Mailchimp 替代方案,并帮助您为您的公司找到正确的选择。
10.克拉维约

Klaviyo
Klaviyo 是另一个多渠道平台,提供电子邮件、短信和社交媒体广告。
他们非常关注电子商务平台,并与 Shopify、WooCommerce、BigCommerce 和 T2 Magento 进行了本地集成。
通过集成,您可以基于购买和浏览历史、废弃购物车等创建高级细分市场。他们甚至有专门的产品推荐功能,因此您可以轻松个性化您的产品和电子邮件。
这是一个伟大的合作伙伴,帮助您实施先进的电子商务战略没有问题。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- 短信(单独定价)。
- 电子商务整合/行为定位(WooCommerce、BigCommerce、Shopify、Magento)。
- 网站跟踪(创建高级细分市场)。
- 投资回报报告。
- 自定义脸书观众。
- 产品推荐。
付费计划和定价
Klaviyo 提供一个包含所有功能的月套餐,价格基于用户数量。
| 计划 | 1,000 名用户 | 10,000 名用户 | 2 万名用户 |
| 每月 | 30 美元/月 | 150 美元/月 | 375 美元/月 |
凭借定制的脸书受众、先进的自动化工作流程、集成、细分和跟踪,月度计划高于 Mailchimp 的标准或高级计划。
它肯定不是最便宜的选择,但它提供的专业功能和集成使其成为电子商务公司可行的 Mailchimp 替代方案。
11.AWeber

AWeber
AWeber 可能将自己标榜为小型企业的强大而简单的解决方案,但它远不是这个列表中最简单的提供商。
作为游戏中真正的老兵之一,在 Mailchimp 成立整整三年之前,它已经成功地从一个简单的自动回复器过渡到一个成熟的电子邮件营销平台。
特征
- 电子邮件生成器。
- 700 多个电子邮件模板。
- 股票照片库。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- 电子商务整合/行为定位(WooCommerce、BigCommerce、Shopify、Magento、Easy Digital Downloads)。
- CMS 集成(WordPress,Magento,Divi,Ghost,Weebly,Wix)。
- 电话支持(在所有计划级别)。
付费计划和定价
AWeber 有一个单层订阅系统,无论你有 500 个还是 50,000 个订户,你都可以使用所有功能。
这使得它成为小型企业的可靠选择,这些企业希望预先安装电子邮件营销渠道,并能够从第一天起就充分利用它。
他们的最低用户级别是 0-500。在这个阶段,每月订阅费用为 19 美元。
现在让我们比较一下我们为这篇文章设定的价位。
| 计划 | 1,000 名用户 | 10,000 名用户 | 2 万名用户 |
| 每月 | 29 美元/月 | 69 美元/月 | 149 美元/月 |
AWeber 还提供 30 天的免费试用。有了大量的本机一键式集成,即使没有任何开发或营销经验,也很容易上手。
12.GetResponse

GetResponse
GetResponse 是电子邮件营销行业的另一个知名平台,也与时俱进,以满足 2022 年现代公司的需求。
他们的全新功能“Autofunnel”帮助您创建、管理和实施完整的营销渠道,包括社交广告、受众创建、登录页面、网络研讨会、弹出线索捕捉和支付处理器集成。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 登录页面生成器。
- 网络研讨会(Plus)。
- 营销渠道。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- 电子商务整合/行为定位(WooCommerce、BigCommerce、Shopify、Magento)。
- CMS 集成(WordPress,Drupal,Joomla)。
- 支付网关集成(Stripe、Paypal、Square)。
付费计划和定价
| 计划 | 1,000 名用户 | 10,000 名用户 | 2 万名用户 |
| 基础 | 15 美元/月 | 65 美元/月 | 145 美元/月 |
| 加 | 49 美元/月 | 95 美元/月 | 179 美元/月 |
| 专业的 | 99 美元/月 | 165 美元/月 | 255 美元/月 |
注意:GetResponse 的企业计划是一项定制服务。
虽然与其他选项相比,高级计划可能显得昂贵,但包含登录页面生成器和完整的漏斗管理系统可以降低其他营销软件的成本。
13.自动驾驶仪

Autopilot
Autopilot 凭借更加自然、直观、可视化的界面将自己与竞争对手区分开来。但这并不意味着引擎盖下的动力更少。
您可以使用可视化漏斗/客户旅程构建器来添加营销自动化操作,从电子邮件到营销受众创建,再到创建/分配任务或发送 SMS。
特征
- 网站跟踪(针对高级细分市场和营销自动化行动)。
- 客户旅程地图。
- 原生营销 CRM。
- 电子邮件生成器。
- 电子邮件模板。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- 电子商务整合/行为定位(Shopify、BigCommerce)。
- 收入/投资回报报告。
- 产品推荐。
- 多用户账户。
付费计划和定价
Autopilot 提供了不同的方案,唯一的区别是联系的数量。
| 计划 | 1,000 名用户 | 10,000 名用户 | 2 万名用户 |
| 每月 | 49 美元/月 | 249 美元/月 | 自定义报价 |
如果您有超过 10,000 个订户,您必须联系他们的销售团队来接收定制报价。
你的新网站需要一流的、快速的、安全的主机吗?Kinsta 提供超快的服务器和来自 WordPress 和 WooCommerce 专家的 24/7 世界级支持。查看我们的计划
你可以从 30 天免费试用的任何用户数量开始。
14.充满

Drip
滴滴是一个营销电子商务 CRM 平台,内置电子邮件解决方案。它拥有通过多种渠道将潜在客户培养成客户的强大工具。
特征
- 销售 CRM。
- 电子商务整合/行为定位(WooCommerce、Shopify、 Magento )。
- 电子邮件生成器。
- 电子邮件模板。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- 短信(单独定价)。
- 网站跟踪(创建高级细分市场)。
- 收入/投资回报报告。
- 自定义脸书观众。
- 产品推荐。
- 动态内容。
付费计划和定价
滴滴提供单一计划,包括所有功能,不考虑联系人数。
| 计划 | 1,000 名用户 | 10,000 名用户 | 2 万名用户 |
| 每月 | 29 美元/月 | 154 美元/月 | 289 美元/月 |
对于一些人来说,它可能是昂贵的一方,但它包括一个内置的销售 CRM 与大量的本机集成。如果你正在寻找一个超越电子邮件自动化的 Mailchimp 替代品,这可能是一个不错的选择。
15.转换工具

ConvertKit
ConvertKit 是一款电子邮件营销解决方案,主要面向创业者、小企业和初创公司。它具有直观、用户友好的界面、清晰的分析报告(可视化最重要的指标)以及中小型企业电子邮件营销活动所需的一切。
特征
- 可视化自动化工作流。
- 电子邮件生成器。
- 电子邮件模板。
- 登录页面生成器。
- 简单的报告和电子邮件分析。
- 细分和个性化。
- A/B 测试。
- 电子商务整合/行为定位(WooCommerce、Shopify、Easy Digital Downloads、Gumroad)。
- CMS 整合 (WordPress、 Wix 、 Squarespace )。
付费计划和定价
所有计划都包括除代办迁移之外的所有功能,代办迁移仅适用于拥有超过 5,000 名订户的计划。
| 计划 | 1,000 名用户 | 10,000 名用户 | 2 万名用户 |
| 每月 | 29 美元/月 | 119 美元/月 | 179 美元/月 |
由于有 30 天的免费试用期,您可以测试 ConversionKit。
16.活动监视器

Campaign Monitor
Campaign Monitor 提供两个独立的电子邮件营销平台,一个是专门为电子商务商店设计的,另一个是为其他企业设计的。
其电子商务产品 CM Commerce(以前称为" Conversio ")提供了与 WooCommerce 、 BigCommerce 和 Shopify、智能客户细分、预制客户旅程自动化模板等的原生集成。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- 短信(单独定价)。
- 电子商务整合(WooCommerce、BigCommerce、Shopify) (CM Commerce)。
- 行为定位(CM 商务)。
- 预制客户旅程自动化配方(CM 商务)。
- 智能客户细分(CM 商务)。
- 评论和用户生成的内容(CM 商务)。
- 产品推荐。
付费计划和定价
我们将涵盖标准活动监控和 CM 商务的计划。
| 运动监控器 | 1000 封电子邮件 | 1 万封电子邮件 | 20,000 封电子邮件 |
| 基础 | 9 美元/月 | – | – |
| 无限的 | 29 美元/月 | 29 美元/月 | 29 美元/月 |
| 最初的 | 149 美元/月 | 149 美元/月 | 149 美元/月 |
基本计划包括所有基本的电子邮件营销功能和基本的营销自动化,每月多达 2,500 封电子邮件。无限制让您访问时区优化,优先支持,和倒计时定时器。通过 Premier,您可以获得电话支持、高级用户权限和预先构建的参与细分市场。
| CM 商务 | 1,000 名用户 | 10,000 名用户 | 2 万名用户 |
| 启动器 | 29 美元/月 | 149 美元/月 | 319 美元/月 |
| 增长 | 49 美元/月 | 249 美元/月 | 429 美元/月 |
| 专业的 | 69 美元/月 | 349 美元/月 | 599 美元/月 |
Starter 限制每月发送电子邮件的数量和您的订户数量(前者 10,000,后者 1,000),但它包括所有基本的电子商务功能,如产品推荐、购物车废弃电子邮件等。
增长还包括用户生成的产品评论、客户调查和社交验证工具。
通过专业计划,您可以获得入职咨询、客户经理的战略建议以及电话支持。
17.经常接触

Constant Contact
Constant Contact 是一个成熟、强大的电子邮件营销平台,二十多年来一直处于行业顶端。
特征
- 电子邮件生成器。
- 电子邮件模板。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 调查。
- 单击地图。
- 电子商务整合(WooCommerce,BigCommerce,Shopify, 3DCart )。
- 行为定位。
- 产品推荐。
- 电话支持(所有计划)。
付费计划和定价
持续联系提供两种不同的订阅等级:电子邮件和电子邮件加。
| 计划 | 1,000 名用户 | 10,000 名用户 | 2 万名用户 |
| 电子邮件 | 45 美元/月 | 95 美元/月 | – |
| 电子邮件加 | 70 美元/月 | 125 美元/月 | 225 美元/月 |
使用动态内容、产品推荐、调查、RSVPs 和 A/B 测试都需要 Email Plus,但成本差异微乎其微。超过 10,001 个订户,价格变得相同。
持续联系提供 30 天免费试用。
18. Keap

Keap
InfusionSoft 在 2019 年将自己更名为 Keap ,作为实现目标市场多元化的一部分,并将他们的主要产品分成几个不同的计划。
基础仍然是一个强大的销售 CRM,具有任务管理、管道自动化和其他高级功能。
特征
- 任务管理。
- 管道自动化。
- 电子邮件生成器。
- 电子邮件模板。
- 细分和个性化。
- A/B 测试。
- 邮件分析。
- 营销自动化工作流程。
- 电子商务整合/行为定位(Shopify、BigCommerce、WooCommerce)。
- 收入/投资回报报告。
- 产品推荐。
- 多用户帐户。
- 原生销售 CRM (InfusionSoft)。
- 原生支付网关(InfusionSoft)。
付费计划和定价
所有 Keap 计划都包括一次性付费获得“专家指导”入职体验的可能性:
| 计划 | 1,000 名用户 | 10,000 名用户 | 2 万名用户 |
| 保持增长 | 79 美元/月+99 美元 | 279 美元/月+99 美元 | 379 美元/月 |
| Keap Pro | 149 美元/月+499 美元 | 349 美元/月+499 美元 | 449 美元/月 |
| 输液软件 | 定制报价+999 美元 | 自定义报价 | 自定义报价 |
Keap Grow 包括基本的 web 注册表单、电子邮件分段、个性化、基本 CRM 功能和一次性付款处理。
Keap Pro 包括经常性支付、CRM 中的销售渠道、A/B 测试和全面集成。
Infusionsoft 包括成熟的电子商务解决方案、功能全面的销售渠道 CRM、自定义用户角色、代销商管理等。所有计划都有 30 天的免费试用期。
WordPress 用户的 Mailchimp 替代品
对于那些严格寻找可以让你直接从 WordPress 仪表盘发送邮件的电子邮件软件的人来说,这里有一些有趣的选择:
19.邮件诗人

MailPoet
MailPoet 是一个 WordPress 第一的电子邮件营销平台,有一个强大的本地插件,集成了 WooCommerce 商店以及普通的 WordPress 网站。你可以很容易地在帖子、页面、甚至是小部件中加入注册表单。
特征
- 电子邮件生成器(在 WordPress 仪表盘内)。
- 电子邮件模板。
- 基本细分。
- 邮件分析。
- 电子商务整合/行为定位(WooCommerce)。
- 原生 WordPress 集成。
免费计划
他们的免费计划包括多达 1000 名订户和无限的电子邮件,以及高级计划的大部分功能。您可以通过 WooCommerce 获得基本的细分功能和电子商务集成。
由于插件和无限的电子邮件,对于拥有 WooCommerce 商店或 WordPress 网站的用户来说,这是一个很好的免费选择。
付费计划和定价
MailPoet 只提供单一的高级计划,一旦用户超过 1000 人,每月 15 美元起。
| 计划 | 1,001 名用户 | 10,000 名用户 | 2 万名用户 |
| 溢价 | 13 美元/月 | 75 美元/月 | 150 美元/月 |
从每月 15 美元开始,他们的保费计划并不是市场上最便宜的选择。不过,如果你想要一个易于设置和使用的选项,能够在你的 WordPress 仪表盘中创建和发送营销电子邮件,MailPoet 可能是你的正确选择。
20.简讯精简版(WordPress 插件)

Newsletters WordPress plugin
简讯精简版是一个 WordPress 插件,允许你收集电子邮件地址和 T2 发送简讯,而不需要依赖第三方服务。
它包括基本的细分,电子邮件,链接跟踪,多个邮件列表,等等。
特征
- 帖子/页面选择嵌入。
- 链接/点击跟踪。
- 邮件列表。
- 电子邮件日程安排。
- 电子邮件模板。
- 通过电子邮件发送帖子。
- 付费订阅(PayPal & 2CheckOut)。
- WordPress 多站点兼容。
- 电子邮件跟踪和分析。
- 按条件分类的时事通讯。
Free Plugin
免费插件包括基本的电子邮件营销功能,并且没有免费计划通常具有的每月/每天联系或电子邮件的限制。
使用这个插件和你自己的服务器发送电子邮件的一个主要缺点是你可能会面临投递问题。因此,最好的解决方案是在中结合 MailGun、Mandrill 或 SendGrid 等服务使用这个插件。
你也完全有责任确保你在处理你的 WordPress 网站上的数据时遵守中的所有数据保护条例。
如果你使用 WordPress,你可能也会对更多的用于 WordPress 的线索生成插件感兴趣。
付费计划和定价
完整时事通讯插件的单一站点许可费用为 65 美元。不限安装次数的开发者许可费用为 195 美元。这些都是一次性费用,价值 1 年的更新。
21.交流邮件

AcyMailing WordPress plugin
AcyMailing 是一个 WordPress ( & Joomla!)简讯插件,允许初学者和高级用户轻松处理他们的电子邮件通信。
该插件集成了知名名字,如 WooCommerce 、联系方式 7 、活动日历、等等。AcyMailing 为你提供了所有的工具来改善你的营销和增加你的清单。
特征
- 无限制:不限用户数量(也不限发送的电子邮件数量)
- GDPR 顺从
- 拖放电子邮件生成器
- 用户管理:列表和细分市场
- 动态内容插入
- 详细的统计数据
- 提高送达率(垃圾邮件测试工具,确保您不会被视为垃圾邮件)
- 自动化工作流程
免费计划
AcyMailing 提供免费计划,对用户数量、发送的电子邮件和集成没有限制。这涵盖了基本需求,并提供了一个很好的方法来尝试和测试这个插件的功能,然后最终升级到它的付费计划之一。
付费计划和定价
根据年度计划,AcyMailing 有三种不同的付费版本:

AcyMailing plugin
正如您马上可以看到的,他们的价格很有竞争力(如果您将其与市场上的其他解决方案进行比较)。这里的一个关键区别是,你不会根据你发送的用户或电子邮件的数量收费,而是根据你需要集成插件的功能类型和网站数量收费。
摘要
当你为自己的企业选择电子邮件营销工具时,你需要考虑的因素不仅仅是价格。
当然,Mailchimp 是一种主食,看起来很棒(我们过去在 Kinsta 也使用过它),但这并不意味着它是任何企业的最佳选择。
有很多 Mailchimp 的替代品可以寻找。
从可以帮助您进行特定营销工作的独特功能,到必要的平台集成,您需要仔细考虑可以帮助您业务的每个方面。
优化漏斗的底部是关键,一个智能的电子邮件营销平台,与您的 CMS,电子商务平台和 CRM 顺利合作是第一步。
但是即使有了完美的工具,你仍然需要遵循电子邮件营销最佳实践来获得最佳效果。这是一个持续的学习过程,你永远不要忘记!
你最喜欢的电子邮件营销软件是什么?在评论里告诉我们吧!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
如何为 WordPress 选择加入表单和电子邮件营销配置 Mailchimp
WordPress 是占统治地位的内容管理系统,Mailchimp 是其 T2 电子邮件营销软件的对等物。
那么,为什么不把两者结合起来呢?
在本指南中,你将学习如何为 WordPress 配置 Mailchimp。有了它,你可以在你的网站上启用选择加入表单,设置电子邮件营销活动,并在你发布新的博客帖子时发送电子邮件。
让我们开始学习如何将 Mailchimp 添加到 WordPress!
WordPress 为什么要用 Mailchimp?
WordPress 插件库已经提供了广泛的电子邮件营销和列表构建插件和小工具。
这就引出了一个问题:是什么让 Mailchimp 比几十种替代品更受欢迎?为什么你应该在你的 WordPress 网站上使用 Mailchimp?
原因如下:
- Mailchimp 为多达 2000 个联系人提供免费帐户。许多高级电子邮件营销应用没有免费计划,即使有,也很难击败 Mailchimp 的功能。
- 您可以通过手动方式或使用插件使用 Mailchimp 制作电子邮件选择加入表单。这两个选项使得设置有些灵活。WordPress 支持自定义编码,并且有大量的 Mailchimp 插件,所以可以使用任何让你更舒服的插件。
- 也可以使用 Mailchimp 进行网站注册表单。用户访问您的网站并创建用户配置文件;这些经常在会员、电子商务和论坛网站上使用。
- Mailchimp 电子邮件设计流程是无与伦比的。其漂亮的模板和拖放编辑器意味着你不必是一个设计师或电子邮件营销专家来构建惊人的活动。您还可以获得一个丰富的模板库。
- 几个自动化工具将 WordPress 更新链接到 Mailchimp 电子邮件,允许你发送电子邮件,比如新帖子,以及当人们注册你的名单时作为欢迎电子邮件或点滴活动。
- Mailchimp 带有先进的定位工具,让你的 WordPress 读者/客户有机会选择他们想要接收的电子邮件。你也可以根据你自己的用户类型来定位。
- 如果你不喜欢将 Mailchimp 与 WordPress 集成的主要插件或方法,你可以随时转向第三方扩展,看看市场上有多少这样的插件。这只是 Mailchimp 作为一个相当受欢迎的电子邮件营销工具的优势之一。
- 你可以在你的 WordPress 仪表盘上显示 Mailchimp 统计数据,但是它们包含了重要的信息,比如邮件打开率、点击率和用户位置。
- Mailchimp 与 WooCommerce 网站很好地集成在一起,帮助你发送自动交易电子邮件,比如废弃的购物车信息、收据和优惠券代码。
- Mailchimp 和 WordPress 的集成意味着你可以利用除了通常的电子邮件营销之外的各种自动化和营销功能。例如,你可以链接你的社交媒体账户,根据电子邮件运行数字广告,设置登陆页面,等等。
如您所见,Mailchimp 提供了一套非常可靠的工具。但是当你为 WordPress 优化 Mailchimp 并整合整个过程时,它会成为一个对你的网站更有帮助的营销平台。
如何设置 Mailchimp 帐户
为 WordPress 设置 Mailchimp 的第一步是:
- 拥有一个 WordPress 站点
- 创建 Mailchimp 帐户
在你建立了这两个账户后,我们可以继续用插件或代码将它们连接起来(更多内容见下文)。
我们的 Mailchimp 入门指南涵盖了访问 Mailchimp 网站以了解如何在 Mailchimp 仪表板上移动的大部分过程。
作为一个简短的提醒,以下是创建 Mailchimp 帐户的步骤,以及指南中未列出的一些额外提示:
首先访问 Mailchimp.com 网站并检查其功能,以确保它正是你想要用于你的 WordPress 网站的电子邮件营销平台。
准备就绪后,点击签约 上线 免费或获取 开始 今日按钮—两者都会将您带到同一页面进行记账。

On the Mailchimp homepage, click one of the “Get Started” or “Sign Up” buttons
您需要选择一个 Mailchimp 定价方案。我们建议从免费计划开始,直到您超过 2,000 个用户的上限或需要一个高级功能。

Go with the Free plan to start your Mailchimp account (Image Source: Mailchimp.com)
接下来的屏幕显示了您需要输入电子邮件以及所需用户名和密码的字段。系统还会提示您告诉 Mailchimp 您的名字、姓氏以及其他一些个人信息,以完成帐户配置。他们甚至有一个营销测试,你可以跳过,但它有助于在你的仪表板上放置正确的功能。

Fill in fields like your First Name, Business Name, and Website URL (Image Source: Mailchimp.com)
完成所有这些后,Mailchimp 会将你发送到主仪表板,在那里你会看到一个欢迎提示,发送活动后的快速统计,以及电子邮件列表大小的详细信息。
阅读我们关于使用 MailChimp 的指南(并建立你的电子邮件列表)继续这个过程。
为 WordPress 设置 Mailchimp 意味着你将整合当前的 Mailchimp 帐户,在你的 WordPress 网站上放置一个 Mailchimp 表单——在你的主页、侧边栏或标题等区域。
有了站点上包含的表单,所有输入的用户数据都会从该站点表单推送到 Mailchimp 中的数据库。您可以从 Mailchimp 管理电子邮件列表的所有方面,包括定位、将用户分组和查看统计数据等选项。您还可以在 Mailchimp 中调整订阅表单的设计。
用于 WordPress 集成的 Mailchimp 的主要目标是建立一个电子邮件列表。之后的一切都取决于你的创造力、发送电子邮件的欲望以及你经营的企业类型。Mailchimp 提供了满足您所有需求的工具,例如:
- 您希望为那些在您的表单上注册的人自动发送欢迎电子邮件
- 为你的零售店制作每月简讯
- 将集成与您的电子商务商店链接,以交付收据
- 设置放弃的购物车消息
- 发送其他交易电子邮件
如何在 WordPress 上设置 Mailchimp
Mailchimp 集成有许多不同的形式,其中包括:
- 在你的 WordPress 站点上创建一个没有插件的 Mailchimp 注册表单。
- 用插件制作一个 Mailchimp 注册表单放在 WordPress 网站上。
- 在你的 WordPress 站点上插入一个 Mailchimp 注册表单作为一个窗口小部件——在侧边栏、页脚或其他窗口小部件区域。
- 链接你的 WordPress 站点,这样自动操作就可以发生,比如从你的 WordPress 站点发送博客文章更新或者电子商务消息。
在下一节中,我们将介绍如何将你的 WordPress 站点链接到 Mailchimp,并完成所有提到的集成类型。然后,您可以根据成本、技能水平要求以及最好看的表单和电子邮件来决定最适合您组织的方式。
如何在没有插件的情况下为 WordPress 创建 Mailchimp 注册表单
Mailchimp 提供了自己的 WordPress 插件(尽管我们不推荐),你可以找到相当多的第三方插件来将 Mailchimp 表单添加到 WordPress。然而,每个人都应该知道如何在不安装插件的情况下将 Mailchimp 表单添加到 WordPress 或任何网站。
退出插件有它的好处,从最小化你的 WordPress 站点上的插件数量到缩短你设计表单和把它放到你的站点上的时间。
转到 Mailchimp 仪表板,选择观众菜单项。这将把你带到观众 仪表板,它列出了不同的观众和每个列表上有多少订户。
Mailchimp 将“受众”称为电子邮件列表。通过电子邮件向受众发送记录所有客户联系信息的数据库列表。
要在 Mailchimp 上构建表单,您必须首先了解受众是直接链接到您的表单的。当您创建表单时,所有收集的数据都将进入您的一个访问者列表。
幸运的是,默认情况下,Mailchimp 的免费计划会自动将您的主要受众链接到您制作的任何表单(因为在免费计划中您只能有一个受众)。对于更高级的计划,您必须为每个表单分配一个受众。
MailchimpAudienceDashboard页面显示的信息包括您的列表名称(在本例中,我们将受众命名为“WordPress List”),以及受众中订阅者的数量。链接到添加 订阅者,导入 联系人,制作签约 表单。

The “Audience Dashboard” shows multiple details about your audience.
现在您已经了解了受众,导航到受众 仪表板选项卡下的注册 表单菜单项。
此按钮将带您进入创建、定制和嵌入 Mailchimp 表单的页面。

Go to the “Signup Forms” tab to create and embed forms for your WordPress site
Mailchimp 提供几种类型的注册表单。
我们将在本文中进一步讨论替代选项,但是将 Mailchimp 表单添加到 WordPress 的经典方法是使用嵌入式 表单生成器。
因此,点击选择按钮旁边的嵌入 表格选项。

Use the “Embedded Forms” option to generate quick forms to embed with code on WordPress
在这个页面上,你会看到一个菜单,有经典、浓缩、横排、非风格和高级等表单样式。
请随意点击这些样式,查看它们各自的外观。经典的 T1 形式通常是一个明智的开始,但是 T2 浓缩的 T3 和 T4 水平的 T5 形式提供了更现代的设计。非样式化的和高级的表单标签很适合大量的定制工作。

There are five forms types to choose from in Mailchimp
例如,切换到压缩标签会改变您在表单预览模块中看到的内容。
你可以看到它提供了一个稍微光滑的设计和更少的字段,这使得它非常适合你的网站中没有太多空间的区域。

The “Condensed” tab gets rid of most fields and compresses the form’s size
另一方面,非样式化的标签去掉了所有样式化的整个表单,允许你把它放在你的 WordPress 网站上,或者保留它的原始形式,或者以后在 WordPress 中定制 CSS 以获得更有品牌感的外观。高级选项卡的工作方式类似于非样式化选项,因为它允许更复杂的定制。

“Unstyled” and “Advanced” forms are for more complicated customizations
说了这么多,回到经典标签。
我们喜欢经典风格,因为它设计适中,能够集成到任何网站上,并且可以添加更多或更少的表单字段。
我们鼓励您探索经典选项卡下的各种设置,并观看每个设置调整预览部分中显示的样式。
例如,我们可以标记显示 仅 必填 字段单选按钮,这导致预览隐藏除了电子邮件 地址字段之外的所有字段。

The “Classic” form has a setting to only show required fields
从另一个角度来看,您可能希望包含更多的字段。在这种情况下,选择显示 所有 字段单选按钮。
现在我们有了“非必需的”注册字段,如第一个 姓名、最后一个 姓名,甚至还有一个客户的生日。

The “Show All Fields” button reveals fields like “First Name,” “Last Name,” and “Birthday”
筛选附加设置也是一个不错的主意,例如:
- 显示兴趣组字段
- 显示必需的字段指示器
- 显示格式选项
- 和可选表格宽度字段

Creating Mailchimp’s form inserting code
完成 Mailchimp 表单的定制后,滚动到页面底部找到要复制/粘贴到您的站点的部分。
您不需要了解这段代码的任何内容,只需要知道它包含样式和数据库元素,以正确的方式显示表单并收集所有数据输入。
选择整个代码块,并将其复制到计算机的剪贴板上。

When you’re done designing, copy the form’s code
现在我们需要在你的 WordPress 站点上获取表单。
要完成这个任务,打开你的 WordPress 站点的后台仪表板。
Mailchimp 的可嵌入表单可以放在站点上任何接受可嵌入 HTML 代码的地方。因此,您可以创建一个新的帖子、页面、产品页面或小部件,所有这些都应该支持 HTML。您甚至可能希望打开以前发布的页面或帖子,在某个地方插入表单。
我们已经导航到该网站的教程的主页,在这里我们将把表单放在页面底部的产品列表下面。
要在可视块编辑器中实现这一点,请单击添加 块按钮(它看起来像一个加号)。要么通过 WordPress 浏览可用的区块集合,要么考虑在搜索栏中输入“HTML”。
找到自定义 HTML 块,并将其插入到你的 WordPress 页面或帖子中。

Click the “Add Block” button and find the “Custom HTML” block
自定义 HTML 块允许你粘贴任何来源的 HTML。之后,WordPress 处理 HTML 以显示其真实设计。
将光标放在自定义 HTML 块字段中,然后粘贴之前复制到剪贴板的 Mailchimp 表单代码。
您应该会看到代码块中的代码。

Paste the previously copied Mailchimp code into the “Custom HTML” block
在自定义 HTML 块中选择预览按钮来测试表单的外观。
这表明我们已经成功地在网站上添加了一个 Mailchimp for WordPress 表单。

Select the “Preview” button to see what the HTML will look like on the frontend
要完成这个过程,点击 WordPress 中的发布或更新按钮。
导航到该页面的前端,检查是否一切正常。

Make sure you check the frontend to view the new form and test it out
您还应该考虑测试表单功能本身。
输入假冒客户的信息——你的电子邮件地址和姓名——然后点击订阅按钮。

Fill in the information for a test customer, then click on the “Subscribe” button
您将看到一条消息,感谢您订阅消息,您可以在 Mailchimp 仪表盘中对其进行定制。

The form is working if you see the “Thank You” message
回到 Mailchimp,跳转到受众部分下的所有 联系人标签,检查用户订阅测试是否成功。
正如所料,我们有了一个新的联系人(从 2 到 3),页面底部的电子邮件地址列表包含了我们输入到表单中的电子邮件。

Be sure to check your contact list in Mailchimp (Image source: Mailchimp.com)
其他风格的可嵌入 Mailchimp 注册表单
我们看到在 Mailchimp 的注册 表单页面上有一些其他的表单样式。
不是所有的都适合嵌入你的 WordPress 网站。不过,它们都有一个用途,特别是如果你想为你的注册表单生成一个单独的、可共享的网页,或者当人们访问你的站点时出现一个弹出窗口。
在注册 表单部分,您可以点击这些表单样式,看看哪些样式可能有助于您自己的设计需求。
例如,表单 构建器链接提供了一个设计工具,用于构建我们用嵌入式 表单创建的扩展版本。

You can edit every aspect of a form’s design in the “Form Builder”
然而,我们应该注意到,表单 构建器并没有生成一个可嵌入的 Mailchimp 表单,而是一个注册 表单 URL 用于与其他人分享,发布到你的社交媒体账户,或者潜在地链接到你网站上的一个按钮。
如果您需要快速将表单发送给某人,有这样的链接很好。表单 生成器通过可定制的字段和字段设置提供完整的设计体验。
请记住,产生的链接会将用户发送到 Mailchimp 托管的网页,而不是您的网站。它仍然是你的表单,它继续收集客户信息并把它放到你的受众中,但是如果你想为 WordPress 配置 Mailchimp,你必须选择可嵌入的 表单。您可以随时在表单 生成器中设计一个表单,并跳转到可嵌入 表单页面定位其代码。

The “Form Builder” gives you a URL to share an external web page with your form on it
另一种表单样式,叫做订户 弹出表单,可以让你在你的 WordPress 站点文件中嵌入隐藏代码,这样每当客户完成一个动作,比如在主页上向下滚动,试图离开你的网站,或者在某段时间内浏览网站,就会出现一个弹出表单。

Choose the Subscriber Pop-up option to generate and customize pop-up forms
Mailchimp 提供了一个时尚的弹出表单生成器,可以调整从表单字段到成功消息的所有内容。
您还可以从以下设置中进行选择,以决定弹出表单何时出现:
- 立即
- 5 秒钟后
- 20 秒后
- 在用户滚动到页面中间之后
- 在用户滚动到页面末尾之后
- 当用户试图退出您的网站时
Mailchimp 中弹出表单的问题在于,你必须在你的 WordPress 站点文件中添加一些代码。虽然你不需要了解太多代码,但是这个过程需要一些 WordPress 文件架构的知识。如果你打算在你的网站上放一个 Mailchimp 弹出表单,我们推荐你阅读我们的指南 WordPress 文件以及如何使用它们。
在 Mailchimp 中,你需要点击连接 站点链接,在 Mailchimp 中为 WordPress 制作一个弹出表单。

Select the “Connect Site” link to begin connecting a pop-up form to your WordPress site
之后,Mailchimp 继续在 WordPress 或任何其他内容管理系统或网站构建者上发布弹出表单的详细指南。
有一些集成,但一般来说,需要访问你的 WordPress 站点文件的 <头> 部分,并粘贴推荐的代码。此外,Mailchimp 会要求您输入您的网站 URL。

Activating a pop-up form on WordPress
如何用插件创建一个 Mailchimp 注册表单
许多人对使用代码向 WordPress 添加 Mailchimp 表单不感兴趣,尤其是当您必须进入 WordPress 文件时。虽然将 HTML 代码插入 WordPress 的基本过程相对简单,但是使用插件有很多好处。
首先,Mailchimp for WordPress 插件通过拖放编辑器、可视化设计器和表单模板消除了编码需求。尽管这不是什么大麻烦,但在使用插件时,你甚至不需要复制嵌入代码。那是相当奢侈的。
此外,Mailchimp for WordPress 插件扩展了 Mailchimp 仪表板中的基本表单构建功能,为您提供了更多的设计元素、预构建的主题和选项,以创建独特的通知、多种表单和其他表单样式,如顶栏。
此外,许多第三方开发者提供了他们自己的 Mailchimp 到 WordPress 的集成,这些集成具有你在其他地方找不到的独特功能。
本节将通过几个教程指导你使用插件为 WordPress 配置 Mailchimp。
我们将向你展示如何在 WordPress 上安装一个 WordPress Mailchimp 插件。之后,我们将解释如何为 WordPress.org(WordPress 的自托管版本)完成类似的过程。更多信息,请阅读 WordPress.com 和 WordPress.org 的差异。
WordPress.org 仍然有一个名为邮件列表订阅表单的官方插件,但它已经很多年没有更新了,可能是因为评论太差。甚至 Mailchimp 也在其文档中推荐了一些第三方插件,我们将在下面讨论。
如何设置忍者形态的 Mailchimp
对于那些使用 WordPress.org(WordPress 的自托管版本)的用户,你需要使用第三方插件来激活 Mailchimp for WordPress,并在你的网站上放置一个表单。没有你可以在 WordPress.com 上使用的内置连接功能。尽管 Mailchimp 确实提供了它的官方 WordPress 插件,但是他们似乎已经放弃了它的开发。也许我们将来会看到更新,但你最好的选择是现在安装一个第三方插件。
其中一个插件叫做忍者形态。

Use Ninja Forms to put Mailchimp forms on WordPress.org
Ninja Forms 插件提供了构建漂亮的联系、注册和潜在客户生成表单的特性,所有这些都不需要任何编码。您还可以添加额外的表单域,以从提交的客户处获取特定信息。此外,Ninja Forms 还集成了几个电子邮件营销提供商,包括 Mailchimp。有了这种集成,你就可以利用超级忍者形态的设计特性,同时还可以向优秀的老 Mailchimp 观众 经理发送订阅。
要使用 Ninja Forms 在 Mailchimp 和 WordPress 之间建立连接,进入你的 WordPress 仪表盘并安装 Ninja Forms 插件。这可以通过进入插件>添加新的并在搜索栏中键入“忍者形态”来完成。
安装并激活忍者形态。这个免费插件可以制作各种各样的联系人表单样式,但是你还必须购买并安装 49 美元的 Mailchimp for Ninja Forms 扩展来添加将这些表单链接到你的 Mailchimp 数据库的功能。

The Mailchimp for Ninja Forms extension is required
然后您可以从 Ninja Forms 网站查看文档,为您的 Mailchimp 邮件列表配置一个表单。
如何用重力形式设置 Mailchimp
另一个表单插件叫做 Gravity Forms,它使得为 WordPress 配置 Mailchimp 变得容易,同时也提供了优秀的表单设计工具。
Gravity Forms 没有免费计划,但你可以每年花 59 美元获得基本版。你还需要激活 Mailchimp 插件,这是所有 Gravity Forms premium 计划免费提供的。

Think about using Gravity Forms to link Mailchimp to any WordPress.org site
Gravity Forms 没有免费的 WordPress 版本,所以你需要在 Gravity Forms 网站注册一个账户。然后你为插件付费,下载到你的电脑,并上传到你的 WordPress 网站。
这可以通过进入 WordPress 仪表盘中的插件>添加新的>上传插件来完成。安装完成后,点击激活按钮使其运行。
在 Mailchimp 上使用重力形态的第一步是打开 Mailchimp 插件。在 WordPress 中,点击表单>附加组件。形态按钮是新的重力形态按钮。
找到 Mailchimp 附加部分,点击激活按钮。这通常需要您登录您的 Gravity Forms 帐户来激活该功能。您应该会在 Mailchimp 附加模块下方看到一个绿色的活动指示灯。

Locate and “Activate” the “Mailchimp Add-on” for Gravity Forms
您现在已经有了 Mailchimp 附加组件,但是仍然需要将您的 Mailchimp 帐户连接到该附加组件。
就像 Ninja Forms(以及每一个连接到你的 Mailchimp 账户的插件),你需要在 Mailchimp 仪表板中生成一个 API 密匙;然后将该关键点粘贴到重力形式设置中以完成整合。
在 Mailchimp 中,点击屏幕左下角的个人资料头像。进入账户>附加项目> API 密钥,然后向下滚动找到你的 API 密钥部分。
对于每个新的应用程序集成,制作一个新的 API 密钥是明智的。例如,如果你已经测试了忍者形态的 Mailchimp 连接,你也应该为重力形态做一个新的。
点击创建密钥按钮继续。
下一个屏幕在第四列显示了一个 API 键,您应该将它复制到您的剪贴板上。

Your API key location.
关闭 Mailchimp 并返回 WordPress。
转到表单>设置> Mailchimp 。
在 Mailchimp 设置面板下寻找MailchimpAPIKey字段。
将您从 Mailchimp 复制的密钥粘贴到字段中。
确保点击保存 设置激活整合。

Go to “Settings” > “Mailchimp” under “Gravity Forms” to paste in your “Mailchimp API Key”
激活 Gravity Forms/Mailchimp 连接后,您可以在 Gravity Forms 编辑器中从 Mailchimp 访问所有受众电子邮件列表。
之后,阅读 Gravity Forms 网站上的插件文档以完成任务,如制作选择加入表单、分割电子邮件列表和启用双重选择加入表单。
如何为 WordPress 添加 Mailchimp 小部件
除了将 Mailchimp 表单放在 WordPress 页面或帖子上,您还可以插入一个 WordPress 小部件来显示表单。小工具有几个优点,特别是当涉及 Mailchimp 选择加入表单时:它们非常适合最小化表单占用的空间,并且小工具出现在大多数页面上,所以访问者不会只在一个页面上被提示注册您的电子邮件列表。
使用小部件为 WordPress 配置 Mailchimp 有几种方法:
- 通过将 HTML 代码复制并粘贴到小部件中
- 用短代码
- 从插件
首先,我们将向您展示如何通过将 HTML 代码复制并粘贴到小部件中来添加 Mailchimp 表单小部件。这几乎与我们在本文前面介绍的方法相同——从 Mailchimp 获取 HTML 代码并将其粘贴到 HTML 块中——但是这一次,我们将代码粘贴到小部件中,而不是页面或 post 块中。
因此,去 Mailchimp,点击观众>注册表格>嵌入式表格。
随意选择想要嵌入到小部件中的表单的样式。经典的形式工作得很好,但是浓缩的版本更容易适应小部件提供的少量空间。你甚至会发现,根据你的 WordPress 主题的布局,水平形式看起来更好。
对于这个例子,我们将选择一个压缩的形式。
无论您使用哪种格式,配置所有需要的设置,然后在复制/粘贴到您的站点部分选择整个代码块。将代码复制到剪贴板。

Design a form in the “Embedded Forms” section, then copy the code to bring it over to a WordPress widget
回到 WordPress,进入外观>定制。还有一个小部件按钮,可以把你带到同一个地方。

In WordPress, click on “Appearance” > “Customize”
一旦进入 WordPress 定制器,选择窗口小部件按钮。

Open the “Widgets” section
这为当前安装的主题显示了几个指定的小部件区域。每个主题都有其独特的小部件支持,所以你可以在边栏、页眉或页脚看到小部件的选项。一些主题不允许窗口小部件,而另一些主题有许多窗口小部件的位置。
单击对 Mailchimp 表单最有意义的小部件区域。对于本教程,我们将使用页脚 列 1 位置。

Pick one of the “Widget Areas”
您可以像在页面或帖子中插入块一样插入小部件。点击添加 块(黑白加号按钮)以显示添加 块库。
搜索“html”,然后点击看到的自定义 HTML 阻止小工具。

Use the “Add A Block” search panel to find and choose the “Custom HTML” block
自定义 HTML 块提供了一个空白字段,可以粘贴您想要的任何 HTML。因此,将您之前复制的 Mailchimp 表单代码粘贴到剪贴板。
WordPress 定制器现在应该在屏幕的右侧呈现一个小部件表单的预览。
确保您点击了发布按钮来呈现对您的实时网站的更改。

Paste the form code into the “Custom HTML” block to see a live preview
使用短代码添加表单小部件
短代码是更简单、更容易理解的代码行,本质上与 HTML 代码块做同样的事情,只是它们更容易引用和复制到另一个位置。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
我们只建议使用短代码,如果你已经安装了一个提供短代码特性的表单插件。否则,你还不如利用上面的免费 HTML 版本,或者考虑找一个插件,它也有一个 Gutenberg 块,可以更好地控制表单的设置。
因此,我们鼓励你检查你已经安装的任何当前表单插件。如果它有一个短代码特性,并且你发现这比其他方法更直观,请使用它们!
例如,Ninja Forms 为你用插件制作的每个表单提供了一个简码。
要将表单短代码插入到小部件中,请导航到所选的插件(在本例中是 Ninja Forms)。你可以通过进入忍者形态>仪表盘找到短码。滚动表单列表,复制想要插入到小部件中的表单旁边的短代码。

Ninja Forms generates shortcodes for every form you make
前往外观>定制。

Take the copied shortcode and go to the “Customize” tab in WordPress
选择 Widgets 选项卡编辑您的 Widgets。

Navigate back to the “Widgets” panel
点击添加 块按钮(黑白加号),输入“shortcode”显示内置的 Shortcode 块。

Use the “Add A Block” tool to find and insert the “Shortcode” block
将先前复制短代码粘贴到可用字段中。
WordPress 定制器应该在窗口小部件区域生成表单的预览。
请记住,用 HTML 代码或短代码发布的表单要求您在 Mailchimp 中编辑表单设置。没有办法在 WordPress 代码小部件中定制像字段或字段标题这样的元素。

You can paste your shortcode into the “Shortcode” field; after that, a preview appears
使用插件(带有 WordPress 块)将 Mailchimp 添加到小部件中
Mailchimp 表单插件包含 WordPress 块而不是 shortcodes 变得越来越普遍,这是因为块不那么吓人,提供内置设置,并且可以插入到帖子、页面和小部件中。
尽管我们建议跳过上面的 shortcode 方法,除非你已经安装了一个带有 short code 的插件,但对于带有块的插件,我们会说相反的话。这是因为不可否认的是,使用一个块要简单得多,所以用一个完全独立的插件来提供这种便利也没什么不好。
一个用来添加插件块的插件叫做另一个 Mailchimp 插件叫做。我们将使用该插件来演示如何在小部件中放置块,但是还有许多其他插件可以考虑,它们都以相同的方式工作,至少是在小部件中插入块。然而,根据你选择的插件,这个模块会有不同的名字和独特的设置。
继续使用另一个 Mailchimp 插件,进入 WordPress 仪表板并安装该插件。
一旦激活,进入设置>另一个 Mailchimp 。

Find the “Another Mailchimp” tab in WordPress to manage all of the plugin’s settings
跳转到 Mailchimp 仪表板获取 API 密钥。
为此,点击屏幕左下角的个人资料图标。然后,进入档案>附加> API 密钥。点击创建密钥按钮,生成一个新密钥。
在您的 API 密匙部分,组合出现在 API 密匙列的下面。

As with most Mailchimp plugins, you must grab the “API Key” from Mailchimp first
导航回到 WordPress 仪表盘,在那里你应该打开插件的设置页面。
将 API 密钥粘贴到字段 Mailchimp API 密钥中。
点击保存 修改。

Paste in the key and click “Save Changes”
现在,这个插件已经链接到你的 Mailchimp 账户,用于选择合适的受众,并向电子邮件列表数据库发送新订户。
还是在 WordPress,去外观>自定义> Widgets 。选择你想要定制的窗口小部件区域,然后点击添加 块(黑白加号)按钮打开可用 WordPress 块库。
输入“mailchimp”,然后选择另一个 Mailchimp 小工具。

Add the “Another Mailchimp Widget” into the “Widgets” section
看到这是一个小部件,而不是一段粘贴的代码,您可以进行设置来定制 Mailchimp 表单的某些方面。例如,这个小工具要求你输入一个标题。您还需要选择用户列表和用户组(Mailchimp 受众)来生成右侧预览中的表单。例如,一旦我们选择了 WordPress 列表 受众,选择加入表单出现在 WordPress 定制器中。

Select a Mailchimp list to render a form widget preview
最后,您可以使用这个小部件浏览所有设置。更改字段标签,决定不仅仅收集电子邮件地址,并写出自定义的成功消息。如前所述,这些设置只是在小部件中使用块比短代码或 HTML 代码更有优势的原因之一。

Customize parts of the form widget using form fields
如何将博客文章从 WordPress 自动发送到 Mailchimp
每当你在 WordPress 上发表一篇博客文章时,自动发出一封电子邮件活动不是很棒吗?
有很多方法可以实现这一功能,但是它们通常不能提供 Mailchimp 所提供的设计控制。我们希望确保我们将电子邮件发送给更新的 Mailchimp 受众列表。因此,配置 Mailchimp 来发送这些自动化的博文通知是有意义的。
幸运的是,如果你找到了博客的 RSS 源,设置起来很容易。首先,找到 WordPress 博客的 RSS 订阅源,并检查以确保它正常工作。
WordPress 网站的主要 RSS 源位于 http://example.com/feed 的/。所以你可以把/feed/放在你的 URL 的末尾,看看是不是这样。
然而,情况并非总是如此,因此您可能需要测试其他选项,例如:
- http://example.com/feed/rss/
- http://example.com/feed/rss2/
- http://example.com/feed/rdf/
- http://example.com/feed/atom/
如果在下面的步骤中粘贴博客 URL 失败,Mailchimp 会尝试查找您的 RSS URL。
一旦有了 RSS 提要,就该把它粘贴到 Mailchimp 中了。
在 Mailchimp 仪表板上,点击自动菜单项。

Go to “Automations” in Mailchimp to start sending out new blog post notifications
Mailchimp 上有几十个预建的自动化程序要创建,所以你必须向下滚动自动化程序页面,找到要分享 你的 博客 帖子的那个。
这种特殊的自动化将一个 RSS 提要链接到一个电子邮件活动,这样您就再也不用手动为新的博客文章发送电子邮件了。你可以定制这些电子邮件的设计,而不是依赖另一个插件的通用设计。

Click the “Get Started” link to “Share Your Blog Posts”
以下弹出模块要求您键入一个活动 名称。你还应该选择哪个 Mailchimp 列表应该接收你的自动 RSS 邮件。
点击开始按钮继续。

Make a “Campaign Name” and mark which “Mailchimp List” should receive the blog updates
你可以从这个特定的页面定制 RSS 提要和发送定时,但最关键的部分是粘贴在 RSS 提要 URL 中,以便 Mailchimp 从你的博客中提取数据。
之后,决定你的自动博客文章邮件的发送频率、日期和时间。
最后,指定你是否希望 Mailchimp 尝试为你的电子邮件活动调整RSS图片的大小。我们已经从这个工具中看到了不同的结果,所以确保您最初运行的测试中只有您一个人在列表中。如果您看到拙劣的图像,您可以移除调整大小** RSS 提要 图像设置。**
完成此页面后,选择下一个**按钮。

Paste in the “RSS Feed URL” and add your desired send timing settings
在收件人页面上,选择将您的博客更新发送给以下群组之一:
- 全体观众
- 段或标签
- 组或新段
通过向某个部门或群体发送邮件,你很可能会获得更好的结果,但许多公司只有一个电子邮件列表。如果是这样的话,用你的新博文更新整个****受众是没有问题的。
**Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
点击下一步:设置按钮前进。

Pick the “Entire Audience” or a specific “Segment” or “Group” from that Audience
您可以在这里配置活动信息,如活动名称、电子邮件主题行和许多其他设置。
请记住,这种自动消息不会为您发布的每一篇独特的博客文章进行定制。正因为如此,你想创建一个邀请,但不具体的电子邮件 主题和预览 文本。
在该页面上可以配置的其他设置包括发件人 姓名,发件人 电子邮件 地址,以及个性化“收件人”字段的选项。

Go through the “Campaign Info” page to configure settings like the “Campaign Name,” “Email Subject,” and more
在点击下一个按钮之前,在页面上向下滚动,以标记您想要在电子邮件中包含的任何跟踪或社交 媒体元素。你可能想要跟踪打开、点击和简单点击的文本,或者甚至链接到脸书或 Twitter 来自动发布。
完成所有操作后,点击下一个按钮。

Set up everything from tracking to social media automation on this page
选择模板部分允许您从空白布局、主题、保存的、模板和活动中制作一个活动模板。如果你愿意,你甚至可以编码 你的 拥有。
自动化的博客文章邮件应该坚持基本原则:你的品牌的颜色、字体和标志。

Decide on an email template for your automated blog post updates
一旦你进入 Mailchimp 设计器,你会想要去掉所有的填充内容,比如图像、示例文本和按钮。
Mailchimp 会自动将自动 RSS 订阅源中的每篇文章的图片、预览文本和按钮放入电子邮件中。除了你的商标和品牌颜色之外,其他任何东西看起来都不合适。
点击下一个按钮,查看最终确认页面。

Make sure you insert brand elements like your logo and colors
如果你的活动有任何问题(比如 RSS 活动中填充内容太多),Mailchimp 会在这个页面上告诉你。否则,它会告诉你,你已经准备好发送自动电子邮件。
点击开始 RSS 按钮激活活动。记住,除非你在你的 WordPress 博客上发表了一篇文章,否则不会有任何东西发送给你的 Mailchimp 读者,就像 RSS 订阅是如何引发这场运动的。

Check that everything is alright by Mailchimp, then click the “Start RSS” button
注意:WordPress.com 提供了和 WordPress.org 一样的 RSS 功能。所以,只要你弄清楚了 RSS URL,如果你使用的是 WordPress.com,这个过程是一样的。
为 WooCommerce 在线商店配置 Mailchimp
Mailchimp 为 WooCommerce 在线商店提供集成,允许商家在自动化、重定向电子邮件等帮助下增加收入潜力。
你想用 Mailchimp 设置的一些更标准的电子商务邮件包括废弃的购物车、产品重新定位、购买后电子邮件、收据、欢迎信息和促销优惠券通知。
这些对于经营一个网上商店是必不可少的,所以那些企业必须有一个可靠的集成。这就是 WooCommerce 插件 Mailchimp 发挥作用的地方。
这一节将概述如何为 WooCommerce 配置 Mailchimp,我们将触及如何运行您的自动化电子商务消息。
在 WordPress 仪表盘中安装 Mailchimp for WooCommerce 插件开始使用。该插件可用于 WordPress.org 和 WordPress.com 的网站。唯一的限制是,如果你使用 WordPress.com,你必须有一个安装这样一个插件的商业计划。

Install the Mailchimp for WooCommerce plugin for ecommerce automations
激活插件后,你会进入一个设置向导,将你的 WooCommerce 站点与 Mailchimp 链接起来。
点击连接T2 账户按钮开始该过程。

The plugin starts with a setup wizard, where you can click the “Connect Account” button
使用你的用户名和密码登录 Mailchimp。点击日志 中的按钮后。

You will most likely have to log into your Mailchimp account once more
该插件提供了它如何访问你的 Mailchimp 账户的信息。
选择允许按钮来指定你信任这个插件。

Choose “Allow” on the next screen
WooCommerce 的 Mailchimp 插件需要一些额外的信息来为它的电子邮件填充正确的内容,尤其是那些自动化的电子邮件。
因此,请在必填字段中填入您的姓名、电子邮件、地址和电话、号码等信息。

Complete the fields for all personal information
进入页面底部为插件设置商店区域设置和权限 设置。您可以将访问权限授予商店经理和管理员或仅授予管理员。

Modify the “Locale” and “Permission Settings”
返回页面顶部点击下一步 下一步按钮。

Go back to the beginning of the page to click the “Next Step” button
在观众 名字下,选择你想要链接到插件的 Mailchimp 观众。如果你只有一个(像我们一样),那么默认情况下会选择观众。
你也可以选择自动订阅所有现有的订阅者,给你的电子邮件添加一个默认的主题,并包含一个许可 提醒 消息,这样人们就知道他们为什么会收到你公司的电子邮件。

Pick the desired “Audience,” then complete things like the email “Subject,” “From Name,” and “Permission Reminder Message”
Mailchimp for WooCommerce 插件会自动在你的 WooCommerce 结账模块中添加一个订阅复选框。有一些设置可用于更改复选框的可见性以及人们看到的信息。

Under “Opt-in Settings,” change the look and feel of the Checkout page’s opt-in box
本页最后几个字段通常可以保持原样。如果您有 WooCommerce 表单操作的经验,请随意管理您的option****复选框的位置。您还可以在注册您的列表时给每个新订户一个标签。
最后,产品 设置部分提供了一个下拉菜单来调整默认的产品 图片 尺寸当它们在你的邮件中自动生成时。这可能需要测试,看看不同尺寸的图像看起来如何。一般来说,坚持使用默认的中等 300×300 图像尺寸并不是一个坏主意。

Don’t forget about deciding on a default “Product Image Size” for the WooCommerce emails
回到观众 设置页面顶部,点击开始 同步按钮。sync 开始从 Mailchimp 中提取所有必要的数据,以便与 WooCommerce 配合使用。

Click on the “Start Sync” button
您将看到一条成功消息,表明 Mailchimp 已连接到您的 WooCommerce 插件。
在此之下,该插件会呈现一些信息,比如你的商店中有多少产品、订阅用户的数量以及你的 Mailchimp 帐户中的交易电子邮件。

The “Success” page details products and subscribers count
就此打住是完全合理的。WooCommerce 的 Mailchimp 插件处于活动状态,当用户通过您的收银台时,它会收集用户的电子邮件地址。
然而,考虑到 Mailchimp 提供了大量通过该插件工作的自动化功能,我们鼓励您在拥有一个基本注册表单的基础上进行扩展。
好消息是,其中大多数都可以在 Mailchimp 仪表板中轻松管理。在 WordPress 中没有太多其他要完成的。
在 Mailchimp 中,点击集成菜单项。

Go to the “Integrations” page in Mailchimp
集成页面提供了一长串第三方程序。向下滚动(或查看电子商务部分,找到并点击 WooCommerce 。它应该已经有一个绿色的勾号,表明你已经通过 Mailchimp for WooCommerce 插件集成了。

Find the “WooCommerce” button in the “Integrations” library
点击管理 贵 站点按钮。

The “Manage Your Sites” link guides you to the sites you’ve connected to Mailchimp
你的网站名称显示在页面的顶部。这应该告诉你,你已经找到了适当的整合。它还会通知您 WooCommerce 何时连接,这可能会有所帮助。
总的来说,这个页面为你的新 WooCommerce/Mailchimp 集成提供了最流行的自动消息选项。
您可以点击添加按钮,为您的在线商店创建以下任何内容:
- 弹出表单
- 废弃购物车邮件
- 产品重新定位电子邮件
- 订单通知

Quite a few tools are available for WooCommerce, including “Pop-up Forms,” “Abandoned Cart Emails,” and more
底部的小链接可以让你看到更多 WooCommerce 可用的自动化列表。点击电子商务自动化链接查看。

Don’t forget about the entire list of “E-Commerce Automations”
在列表中,您将看到针对以下内容的有用自动化电子邮件:
- 感谢新顾客
- 奖励你最好的顾客
- 重定向网站访问者
- 打开废弃购物车电子邮件
- 跟踪购买情况
- 赢回流失的顾客

Consider automation like thanking first-time customers, following up on purchases, and retargeting
我们不会指导你完成这些潜在的电子商务自动化。相反,我们将创建一个快速的废弃的 购物车 通知来展示使用模板和已经实现的来自 Mailchimp 的合并标签进行配置是多么容易。
如果您选择了废弃 购物车 通知选项,Mailchimp 会为您填充绝大多数设置。
然而,您可以点击编辑按钮来调整以下任何一项:
- 发送到设置,决定发送邮件前等待多长时间
- 来自的电子邮件地址
- 您的每一条废弃购物车消息的主题
- 邮件的内容

WooCommerce automation has similar setup pages
另外,Mailchimp 为所有类型的 WooCommerce 自动化提供了模板。
你必须选择一个废弃的 购物车模板,然后移动到设计区域。

Go with an “Abandoned Cart” template
和大多数自动消息一样,除了你的徽标、品牌颜色和字体之外,你不需要定制太多。否则,当前模板中的所有内容都被设计为针对每个唯一的客户进行动态填充。合适的产品将会出现,同时还会显示价格、产品名称和链接,让人们再次光顾你的商店。

Each WooCommerce template in Mailchimp has several merge tags and automated content elements
当你完成设计后,进入下一页,确认从发送到字段到内容的所有内容都经过 Mailchimp 和你的审核流程的批准。
点击启动 发送按钮激活此自动化。

Check if everything looks good, then click the Start Sending button.
在所有这些之后,您的废弃购物车电子邮件将开始进入客户收件箱!
增加功能的 WordPress 插件最佳 Mailchimp
如果你已经承诺使用 Mailchimp 收集电子邮件,发送时事通讯,并有可能处理交易信息,你可能会发现你正在寻求扩展 Mailchimp 为你的网站服务的方式。
作为一个流行的电子邮件营销系统,您可以找到大量关于 Mailchimp 和第三方插件的资源,这些插件旨在向标准 Mailchimp 基础架构添加更多功能或集成。
这些插件仍然需要 Mailchimp 才能工作,但它们不一定是由 Mailchimp 公司制造的,也不一定符合你在 Mailchimp 仪表板上找到的常见功能。
您已经可以制作电子邮件选项表单、电子邮件简讯和其他对象,如网站、登录页面和客户旅程。尽管如此,下面的 Mailchimp 插件提供了更多的可能性。
这里有一些其他的 Mailchimp 插件可以考虑。其中一两个可能会帮助你获得一些你一开始就希望 Mailchimp 拥有的随机特性。
1.MC4WP
MC4WP 是最流行的第三方 Mailchimp 插件之一。它以每年 59 美元的高价插件出售,或者你可以选择基本免费版本。
与 WordPress 集成的标准 Mailchimp 相比,MC4WP 在表单样式、电子商务集成和用户同步方面拥有更先进的功能。

MC4WP offers stylish, advanced opt-in form designs
您可以生成无限数量的表单,并使用插件中的样式生成器来调整任何使用可视化生成器的表单元素。没有必要考虑特殊的编码,因为表单的所有方面都是使用可视控件字段来管理的。生成器旁边会出现一个表单预览,让您了解它的外观。
除此之外,MC4WP 提供了一个令人难以置信的报告部分,其中包含访问者使用的登录方法的独特指标,网站上的顶级表单等等。我们也喜欢你对你的电子商务商店所做的改进,看看 MC4WP 如何提供一个面板来查看每个订户从你的商店购买了什么,以及你发送给客户的每封电子邮件带来了多少收入。
2.MC4WP: Mailchimp 顶栏

The MC4WP plugin
与上一个插件一样,由相同的 Ibericode 开发人员制作, MC4WP: Mailchimp Top Bar 确实如其名。它集成了 MC4WP 插件,但提供了额外的功能,给你一个漂亮的顶部栏,当人们登陆你的网站时,你可以抓取电子邮件地址。
顶栏会保留在网站的每个页面上,除非你决定只在某些区域显示它。您可以自定义设置,如顶部栏的颜色、收集的数据以及出现在栏和提交按钮上的消息。
3.Mailchimp 的简易表格

Easy Forms for Mailchimp
该插件与 shortcode 和 block 模块一起工作,让你在页面、帖子和 widget 化区域中包含你的表单。我们还喜欢它为默认的 Mailchimp 表单设计器提供了一个替代方案,因为一些用户可能更喜欢这个插件中的设计,或者可能有一些模板或字段更适合你的品牌。
总的来说,所有需要做的就是在插件中插入 Mailchimp API 键来建立连接。您将收到一个可视化的表单生成器,其中包含用于合并标签、必填字段以及所有这些字段的标签的选项。插件中还有一个优秀的统计模块,用于查看你的列表的执行情况。
4.邮件蛋白

MailOptin
MailOptin 插件集成了几个电子邮件营销服务,如 Mailchimp、Hubspot 和 AWeber。特别是 Mailchimp 功能,它有工具可以直接从你的 WordPress 仪表盘上构建表单、生成弹出窗口和发送电子邮件简讯。因此,您不必登录您的 Mailchimp 帐户来完成此过程。
我们从 MailOptin 看到的主要优势是表单和销售线索生成框等元素的改进模板。您可以轻松地在整个网站上添加表单,包括出现在电子商务购物车中的表单,然后定制表单出现时从字体到颜色、从标题到效果的所有内容。我们认为 MailOptin 的形式比 Mailchimp 的基本形式更现代一些。我们还喜欢独特的设置,如广告拦截检测、推荐人检测和弹出表单的站点触发时间。
5.WooChimp

WooChimp
WooChimp 是一款高级插件,目前售价 59 美元。它提供了与 WooCommerce 的 Mailchimp 插件相似的功能,但增加了一些东西。例如,这个插件可以让你自动添加用户到组中,配置 webhooks,并使用小部件和短代码在你网站的任何地方实现表单。还有一些奇特的活动到订单跟踪,以更好地了解你的电子邮件营销活动如何影响销售。
6.Mailchimp 的联系表 7 分机

Contact Form 7 Extension for Mailchimp
一些 WordPress 用户喜欢联系人表单 7 插件,因为它免费、简单易用,而且你可以毫无麻烦地维护光滑、漂亮的表单。因此,看到 Mailchimp 插件的 Contact Form 7 扩展是有意义的,它允许您通过 Mailchimp 使用 Contact Form 7。
很像 Contact Form 7,这个扩展是完全免费的。您可以注册高级功能,但前提是您需要对生日字段、Mailchimp 类别或无限自定义字段的额外支持。
在免费版本中,该插件与 Contact Form 7 完美集成,您可以支持相当多的自定义字段、无限制的联系人表单,以及在双重和单一选择加入之间进行选择。
这与通过 Mailchimp 或任何其他表单插件制作表单没有太大区别,但我们知道 Contact Form 7 是最受欢迎的表单创建插件之一,所以很高兴看到有 Mailchimp 集成。
7.Mailchimp 的 RSS 特色图片及更多

Featured Images in RSS for Mailchimp & More
如果你在网站的 RSS 订阅源中生成特色图片有困难,那么 Mailchimp 插件中的特色图片就派上用场了。有时这个问题是由于你的主题、你安装的插件有问题,或者仅仅是因为 RSS 源配置不正确。
不管怎样,这里有一个插件,它为所有的图片问题增加了一个解决方法,并为你在 RSS 订阅中定制特色图片提供了更多的选择。之后,您可以将 RSS 提要连接到 Mailchimp,这样每当您发布新的博客帖子时,电子邮件就会发送出去。该插件允许您调整所有特色图像的填充、位置和图像大小等设置。不仅如此,WooCommerce 还集成了插件,可以在必要时将产品照片即时添加到 RSS 提要中。
摘要
为 WordPress 设置 Mailchimp 有几个好处。它是免费的(最多 2000 名用户)。您通常可以使用快速复制和粘贴来集成 WooCommerce。Mailchimp 还提供了电子商务自动化的冲击,以增加收入。
此外,Mailchimp 具有一些你可以从电子邮件营销计划中找到的最好的设计特征。这样,你的业务看起来很专业,但你不需要有编码经验就能做到。
你曾经使用 Mailchimp 在你的 WordPress 网站上收集电子邮件地址吗?
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。****
如何使用 MailHog 在本地测试电子邮件(分步指南)
原文:# t0]https://kinta . com/blog/mailhog/
在本地开发环境中测试电子邮件可能具有挑战性。知道你的网站或网络应用发出的邮件是否真的到达了收件人的收件箱是一件非常痛苦的事情。进来,麦猪!
MailHog 是一个电子邮件测试工具,它使得安装和配置本地电子邮件服务器变得非常容易。MailHog 设置了一个假的 SMTP 服务器。您可以配置您的首选 web 应用程序来使用 MailHog 的 SMTP 服务器发送和接收电子邮件。
例如,你可以配置一个本地的 WordPress 站点来使用 MailHog 发送邮件。这正是 DevKinsta 为其内置 SMTP 服务器供电以在本地测试电子邮件所做的事情。
在本文中,您将了解 MailHog 的来龙去脉,包括它的安装、配置、如何在本地测试电子邮件等等!
准备好开始了吗?我们走吧!
更喜欢看视频版?
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
什么是 MailHog?

MailHog Web UI
MailHog 是一个开源的电子邮件测试工具,主要面向开发者。它使您能够更有效地测试您的 web 应用程序的电子邮件发送和接收功能。
MailHog 是用 Go 编程语言构建的,可以在多种操作系统上运行,包括 Windows、Linux、FreeBSD 和 macOS。MailHog 由伊恩·肯特维护,并在麻省理工学院的许可下发布,所以你可以自由地部署它用于个人和商业用途。
但是为什么你首先需要 MailHog 呢?
你为什么需要邮件猪
MailHog 解决了许多电子邮件测试的主要问题。
假设你正在本地开发环境中开发一个 WordPress 网站。如果你想测试一个联系表单或者任何其他从它发出的邮件,这可能是一个可怕的任务。
通常,web 应用程序的默认 SMTP 服务器负责这项任务。在本地开发环境中,由于多种原因,它几乎总是行不通。
你可以阅读我们关于免费 SMTP 服务器的广泛指南来了解更多关于 SMTP 服务器的工作原理。

How an SMTP server works (Source: Wikimedia Commons)
首先,你需要设置你的操作系统、网络服务器和网络应用,以便在本地环境下使用电子邮件。然后你必须确保邮件成功到达你的收件人的收件箱,这会浪费你的时间(和收件箱空间)。
此外,还有使用真实电子邮件地址进行测试的问题。这会损害你私人邮件的可信度。
MailHog 解决了上述所有问题。它设置了一个假的 SMTP 服务器,您可以设置您的 web 应用程序来发送和接收电子邮件。它甚至将发送和接收的电子邮件存储在一个漂亮的 web UI 中,这样你就可以像使用真正的电子邮件收件箱一样浏览它们。
最后,MaiilHog 还允许您使用一个用于自动化测试的 API 来检索这些电子邮件。这是一个强大的特性,如何使用这个 API 取决于你自己。
MailHog 功能
MailHog 配备了许多开箱即用的功能。以下是它的一些主要亮点:
- 轻巧便携:不需要安装 MailHog 就可以使用。这是 MailHog 的主要优势之一。这使得它具有高度的可移植性,几乎可以在任何操作系统或网络服务器上运行。
- 扩展 SMTP 支持:【MailHog 不仅支持设置一个假的 SMTP 服务器,你还可以用它来设置一个 e SMTP 服务器(扩展 SMTP)。它还包括对 SMTP 认证和管道的支持。
- API 支持:可以使用 MailHog 内置的 HTTP API (或者 JSON API)来检索、列表、删除邮件。
- 失败测试:你可以邀请吉姆,MailHog 的混乱猴子(是的,它实际上是这么叫的),来测试你的网络应用的电子邮件传送能力。这是通过随机创建常见的电子邮件送达问题来实现的,如拒绝连接/身份验证和限速连接。
- 实时更新: MailHog 使用 EventSource web 界面提供即时更新。
- 电子邮件捕获和存储:捕获的电子邮件可以存储在内存消息存储中,并持久存储在 MongoDB 数据库和基于文件的存储系统中。
- 下载附件: MailHog 支持单个 MIME 部分的下载。
- 网络用户界面:你可以使用 MailHog 的网络用户界面以纯文本、 HTML 或源文件的形式查看电子邮件。它还支持多部分 MIME 和编码头。
- 认证: MailHog 对其 Web UI 和 API 都支持 HTTP 基本认证。
- 释放捕获的邮件:您可以配置 MailHog 将捕获的邮件释放到真实的 SMTP 服务器上进行发送。

Jim is MailHog’s “Chaos Monkey”
除了上述特性之外,MailHog 目前有两个客户端库,分别用于 PHP 和 NodeJS 环境,以便轻松地与 MailHog API 进行交互。
在各种平台上部署 MailHog
如前所述,MailHog 不需要安装。但是,您仍然需要下载它,并在您的开发环境中进行设置。
让我们开始下载 MailHog。然后我们将向您展示如何在各种平台上设置它。有许多方法可以着手做这件事。
Windows 上的 MailHog
首先,前往 GitHub 上的 MailHog releases 页面下载其最新的 Windows 稳定版。下载 MailHog 后,您可以在没有任何外部依赖的情况下运行它。

MailHog GitHub releases page
注:截至撰写本文时, MailHog 1.0.1 是最新发布的版本。您可以下载为 Windows、Linux 和 Darwin (macOS)平台预编译的版本。如果你正在使用一个利基平台,你也可以下载它的源代码并为你的特定用例编译它。
由于 MailHog for Windows 是一个简单的自执行程序,你可以运行下载的**.exe**文件。如果您收到任何安全警报,请确保允许 MailHog 在您的本地主机环境上运行,而没有防火墙的限制。
下面是 MailHog 在 Windows 10 上的样子。

MailHog running on Windows 10
您可以看到 SMTP 服务器在端口**1025**上,HTTP 服务器在端口**8025**上。
还没有什么特别的,但是已经确认 MailHog 正在你的系统上运行。
现在,你可以在你的网页浏览器中访问**localhost:8025**或**127.0.0.1:8025**来查看 MailHog 网页界面。

MailHog Web UI on Windows
您还不能找到这里列出的任何电子邮件,因为我们还没有配置任何 web 应用程序来使用 MailHog。我们将在本文的后面讨论这个问题。
Linux 上的 MailHog
如果您使用的是 Linux (Ubuntu/Debian ),下面是部署 MailHog 的方法:
sudo apt-get -y install golang-go
sudo apt-get install git
go get github.com/mailhog/MailHog
第一个 Linux 命令在您的开发环境中安装 Golang 编程语言(如果您还没有的话)。如果你已经安装了 Go,你可以跳过这一行。下一个命令将在您的机器上安装**git**(如果已经安装了,您也可以跳过这一步)。
第三个命令使用 Go 的指令从其 GitHub 存储库中获取 MailHog 的最新稳定版本。
接下来,您可以通过您的终端运行**/path/to/MailHog**来启动 MailHog。确切的路径可能因您的 Linux 风格而异。由于 Go 在 Ubuntu 上的 bin 文件存储在**~/go/bin/**目录下,你可以运行下面的代码来启动 MailHog:
~/go/bin/MailHog
差不多就是这样。MailHog 现在运行在您的 Linux 机器上。这是它看起来的样子。

MailHog running on Linux (Ubuntu)
如果您想在每次登录时自动启动 MailHog,您可以使用 supervisord、upstart 等将它设置为作为守护程序服务器启动。你也可以使用 geerlingguy 提供的 init 脚本或者 Ansible 角色来做同样的事情。
就像 Windows 一样,你可以看到 SMTP 服务器从端口**1025**开始,HTTP 服务器从端口 8025 开始。
在您的网络浏览器中访问**localhost:8025**或**127.0.0.1:8025**以查看 MailHog 网络用户界面。

MailHog Web UI on Linux (Ubuntu)
macOS 上的 MailHog
苹果用户可以使用自制软件安装 MailHog。打开您的终端并运行以下命令:
brew install mailhog
这会在你的 macOS 上安装 MailHog。接下来,您可以使用以下命令启动 MailHog:
mailhog
如果您希望 MailHog 在登录时自动启动并作为后台服务运行,您可以改为运行以下命令:
brew services start mailhog
差不多就是这样。MailHog 现已安装在您的 macOS 上。您可以通过在浏览器中访问**127.0.0.1:8025**或**localhost:8025**来查看其 Web UI。
密霍加码头
Docker 是跨任何平台设置 MailHog 的最简单的方法之一。
首先,确保你的机器上安装了 Docker。接下来,您可以通过运行以下命令直接从 Docker Hub 启动 MailHog:
docker run -d -p 1025:1025 -p 8025:8025 mailhog/mailhog
让我们来分解上面的命令及其指令:
-
启动一个 docker 容器。
-
**-d**指令在后台运行 docker 容器。 -
**-p 1025:1025**和**-p 8025:8025**指令将 MailHog 的默认 SMTP 端口暴露给本地端口。 -
从 Docker Hub 获取最新的 MailHog 版本。
或者,如果您想将 MailHog 的**Maildir**挂载到您的本地文件系统(而不是 Docker 容器内),您可以运行以下命令:
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
docker run -d -e "MH_STORAGE=maildir" -v $PWD/maildir:/maildir -p 1025:1025 -p 8025:8025 mailhog/mailhog
像以前一样,你可以在浏览器中访问**localhost:8025**或**127.0.0.1:8025**来使用 MailHog Web UI。
MailHog on Docker 复合材料
Docker Compose 是 Docker 的扩展,它使得用一个命令运行多个 Docker 容器变得容易。您可以通过在 YAML 文件中定义所有要运行的容器来实现这一点。
默认情况下,Docker Compose 要求您将这个文件命名为**docker-compose.yaml**。
要使用 Docker Compose 运行 MailHog,您的**docker-compose.yaml**文件应该是这样的:
version: "3"
services:
mailhog:
image: mailhog/mailhog:latest
restart: always
ports:
- 1025:1025
- 8025:8025
在此文件所在的文件夹中,运行以下命令在后台启动 MailHog:
docker-compose up -d mailhog
它的工作方式与 Docker 完全一样。除此之外,您不需要提及许多指令,因为您已经定义了它们。
您现在可以在浏览器中输入**localhost:8025**或**127.0.0.1:8025**来查看 MailHog Web UI。
除了以上方法,MailHog 的 GitHub repo 还包括了在 AWS 弹性豆茎上部署 MailHog 的指南。
用 xhsendmail 配置 mailhog
MailHog 使用 mhsendmail ,一个专门为 MailHog 创建的**sendmail**替代品,将电子邮件从网络应用重定向到它的 SMTP 服务器。它确保您的 web 应用程序的电子邮件使用**localhost:1025** SMTP 服务器发送和接收,默认情况下 MailHog 配置为处理该服务器。
要开始使用,你需要下载并安装**mhsendmail**。根据您的平台,您可以通过各种方式来实现这一点。
例如,如果你正在使用 Ubuntu,你可以使用下面的命令从它的 GitHub 库下载**mhsendmail**:
wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64
接下来,使这个文件可执行,并将其移动到您的用户目录。为此,请使用以下命令:
sudo chmod +x mhsendmail_linux_amd64
sudo mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail
或者,您也可以通过运行以下命令在 Golang 或 Homebrew 上获得**mhsendmail**:
go get github.com/mailhog/mhsendmail
在运行上述命令之前,请确保安装了 Go。如果您使用的是 Linux,请参考上面的 MailHog on Linux 部分。要安装 Go with Homebrew,请运行以下命令:
想马上使用 MailHog 吗?DevKinsta 使用 MailHog 来增强其电子邮件收件箱,以进行无障碍的本地电子邮件测试。使用 DevKinsta 在几分钟内构建、测试和部署 WordPress 站点。现在就试试 DevKinsta】!
brew install go
下载完**mhsendmail**后,您现在可以继续安装它了:
go get github.com/mailhog/mhsendmail
接下来,您需要配置您的 web 应用程序,以使用 MailHog 的**mhsendmail**作为其电子邮件路由服务。默认情况下,大多数 Linux 系统将它设置为使用**sendmail**。
您可以通过编辑您的**php.ini**文件来做到这一点。在大多数服务器上,你可以在根目录下找到 php.ini 文件。您也可以执行以下命令来查找它的位置:
php -i | grep 'php.ini'
对于运行 Ubuntu 的 Linux 机器,需要将**sendmail_path**的值设置为:
sendmail_path = /usr/local/bin/mhsendmail
除了上面的值,您还可以使用下面显示的值来获得相同的结果:
sendmail_path = /usr/sbin/sendmail -S mail:1025
如果您使用 Go 来安装**mhsendmail**,或者如果您使用任何其他版本的 Linux,路径可能会根据您的平台/配置略有不同。确保链接到正确的**mhsendmail**目录。
Mac 用户需要编辑他们的**Postfix**配置文件来正确设置 MailHog。您可以使用以下后缀配置:
myhostname = localhost
relayhost = [127.0.0.1]:1025
对于 WordPress 站点,你可以使用免费的 MailHog for WordPress 插件将你站点的邮件发送到 MailHog。要使用它,在你的 WordPress 管理面板中安装并激活插件。更好的选择是使用 DevKinsta 。我们稍后将深入讨论它。
阅读 MailHog 文档了解如何在各种其他平台/配置上设置它的信息。
其他 MailHog 配置选项
您可以使用它的各种环境变量或命令行选项来配置 MailHog。
例如,您可以使用**MH_HOSTNAME** 环境变量或**-hostname**命令行选项将其默认主机名从**mailhog.example**更改为自定义名称。
要了解更多信息,您可以查看 MailHog 配置选项文档。
使用 MailHog 进行本地电子邮件测试
最后,让我们测试一下我们的 MailHog 设置,看看它是否配置正确。
您可以使用 Mailhog 的 CLI 通过使用以下**mhsendmail**指令发送电子邮件:
mhsendmail [[email protected]](/cdn-cgi/l/email-protection) <<EOF
From: Salman <[[email protected]](/cdn-cgi/l/email-protection)>
To: Test <[[email protected]](/cdn-cgi/l/email-protection)>
Subject: Hello, MailHog!
Hey there,
Missing you pig time.
Hogs & Kisses,
Salman
EOF
在上面的代码中,**<<EOF**指令设置了一个自定义分隔符,这样您就可以在终端内部交互地输入测试电子邮件的详细信息。当您再次键入分隔符时,它会执行所有输入。这里,它使用**mhsendmail**命令发送一封邮件。

Sending a test email using ‘mhsendmail’
您可以通过访问 MailHog Web UI 来验证电子邮件是否已成功发送。

The test email has been delivered successfully
您也可以点击测试邮件来验证其正文内容。

Verifying the test email’s body content
这是一个总结!我们现在可以得出结论,MailHog 已经配置成功。
除了上述方法,还有其他方法可以发送测试邮件。例如,在 macOS 上,您可以通过在终端中运行以下命令来发送测试电子邮件:
date | mail -s "Hello, MailHog!" [[email protected]](/cdn-cgi/l/email-protection)
在 Windows 上,您可以通过执行以下代码使用 PowerShell 发送电子邮件:
Send-MailMessage -To "[[email protected]](/cdn-cgi/l/email-protection)" -From "[[email protected]](/cdn-cgi/l/email-protection)" -Subject "Hello, MailHog!" -SmtpServer "localhost" -Port 1025
您还可以用所有邮件数据定义一个 PHP 脚本,并使用 PHP 的**mail()**函数发送一封测试邮件。为此,如下定义您的 PHP 脚本,并从终端执行它:
<?php
$to = "[[email protected]](/cdn-cgi/l/email-protection)";
$subject = "Hey, I’m Pi Hog Pi!";
$body = "Hello, MailHog!";
$headers = "From: [[email protected]](/cdn-cgi/l/email-protection)" . "\r\n";
mail($to,$subject,$body,$headers);
?>
最后,您可以使用 MailHog API 来测试电子邮件是否已经成功发送。如果你专门在一个非 GUI 环境中工作(例如 Linux 终端,Windows PowerShell),MailHog API 非常方便地列出、检索和删除电子邮件。
DevKinsta 和 MailHog:轻松的本地电子邮件测试
我们的本地 WordPress 开发工具, DevKinsta ,使用 MailHog 来增强其电子邮件测试功能。因为它也可以容器化单独的站点,你将有一个单独的 MailHog 收件箱用于你正在开发的每个本地站点。

DevKinsta’s ‘Email Inbox’ is powered by MailHog
像 MailHog Web UI 一样,可以使用 DevKinsta 的本地电子邮件收件箱来查看和操作电子邮件(删除、标记为已读、查看源)。

View and manipulate emails in DevKinsta
您还可以通过运行以下 Docker 命令来检查 DevKinsta 的 MailHog 日志:
docker logs -f devkinsta_mailhog
前往 DevKinsta 的知识库部分了解更多信息。
摘要
MailHog 让电子邮件测试变得轻而易举。这是一个伟大的,实用的解决方案来测试您的网站或网络应用程序的电子邮件。此外,MailHog 在几乎所有流行的平台上都易于设置,并且具有易于使用的 Web UI。
像 MailHog 一样,DevKinsta 是一个开始本地 WordPress 开发的好方法。它不仅包括用于本地测试电子邮件的 MailHog,还预装了用于轻松管理数据库的 Adminer 。
有了 MailHog(和 DevKinsta)的支持,您会发现在本地测试电子邮件从未如此简单。
如果你想分享你在本地测试电子邮件的经验或挑战,请在下面的评论区给我们留言。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
如何在 WordPress 中减少 HTTP 请求(轻松提升网站速度)
你的网站的 HTTP 请求越多,它的加载速度就越慢。因此,如果你能减少 HTTP 请求的数量并优化它们的加载方式,你就能提高网站的性能。
在这篇文章中,我们将带你了解如何在 WordPress 上减少 HTTP 请求。
我们将从 HTTP 请求的基本介绍开始,为什么它们很重要,以及如何分析你的 WordPress 站点的请求。
然后,我们将分享一些技巧和策略,你可以实施,以减少您的网站的请求。除了帮助您处理 GTmetrix 中的“减少 HTTP 请求”消息之外,这些策略还将帮助您处理 Google PageSpeed Insights 中的“避免链接关键请求”消息。
更喜欢看视频版?
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
什么是 HTTP 请求?
当你建立一个网站时,它有很多不同的部分。您有在页面上使用的不同的图像文件,控制内容外观的 CSS 样式表,添加所有酷功能的 JavaScript 文件,等等。
当某人访问您的网站时,他们的浏览器需要一种方法从您的服务器下载该页面所需的所有资源。为此,它为每个单独的资源向服务器发出 HTTP 请求。
例如,它可能会说,“嘿,服务器,我需要那个coolimage.png文件”和“嘿,服务器,我还需要那个联系人表单插件的 CSS 样式表”。然后服务器用有问题的文件响应这些请求。
一旦网络浏览器得到这些文件,它就可以为你的访问者组装网页。当然,比这要复杂一点,但这是基本的想法。
HTTP,超文本传输协议的缩写,是这些计算机(访问者的浏览器和你的网络服务器)如何通信。
需要理解的重要一点是,每个单独的元素都是一个单独的 HTTP 请求。例如,如果一个网页上有五个图像文件,浏览器需要发出五个单独的 HTTP 请求,每个图像一个。
类似地,如果你使用四个 WordPress 插件并且每个插件添加自己的 CSS 样式表,访问者的浏览器将需要发出四个单独的 HTTP 请求,每个插件的样式表一个。
为什么减少 HTTP 请求很重要?

一般来说,你网站的 HTTP 请求越多,加载就越慢。所以如果你想让你的网站加载更快,你需要优化和减少你的网站需要的 HTTP 请求的数量。
虽然这有点过于简单,但基本思想是,一旦完成所有 HTTP 请求的下载,web 浏览器将只向您的访问者显示网站(尽管有一些策略告诉浏览器可以等待某些文件)。
因此,如果一个网站必须发出 70 个 HTTP 请求才能显示页面,那么它将比发出 40 个 HTTP 请求花费更长的时间。
此外,一些 HTTP 请求会“阻止”其他 HTTP 请求,这意味着浏览器在完成下载之前不能开始下载某些 HTTP 请求。
底线是:当你发出更少的 HTTP 请求时,你会让你的网站加载得更快。
T3】
如何查看和分析站点的 HTTP 请求
上面,你知道了在所有条件相同的情况下,减少 HTTP 请求的数量将会加速你的站点。然而,所有的 HTTP 请求并不总是“相等”的。有些 HTTP 请求比其他的要大。有些人比其他人慢。
例如,请求一个 3 MB 的大图像文件比请求一个 20 KB 的小图像要长得多。
如果你想对你的站点做最大的改进,首先关注大的、缓慢加载的 HTTP 请求将会有最大的投资回报。
为了分析你的站点的 HTTP 请求,你可以使用叫做瀑布分析的东西。
大多数速度测试工具都提供这个,但是在 GTMetrix 和 Pingdom 的接口非常方便。您也可以使用浏览器的开发工具。但是,我们将使用 GTmetrix 进行截图。
一旦你插入你的 URL ,你会在顶部看到一个基本的摘要框。这向您显示了您的站点有多少 HTTP 请求,但它并没有对单个请求进行细分:

要分析您的个人请求,请转到下面的瀑布选项卡。
在这里,您将看到站点上每个 HTTP 请求的列表,以及下载该 HTTP 请求所需时间的信息:

您可以看到并非所有的 HTTP 请求都是相同的。例如,839.3 KB 的映像需要 1.12 秒,而 57.6 KB 的映像只需要 87.5 毫秒:

你也可以通过在你的服务器上搜索插件文件夹的名称来找到来自你正在使用的不同 WordPress 插件的 HTTP 请求。例如,您可以看到 WooCommerce 添加了七个自己的 HTTP 请求:

通过这种方式,你可以看到你正在使用的插件是否增加了大量的 HTTP 请求(尤其是缓慢加载的请求)。
如何优化和减少 WordPress 中的 HTTP 请求
概括地说,有两种策略可以减少 HTTP 请求:
- 删除 HTTP 请求。如果可能的话,应该彻底删除每一个不必要的 HTTP 请求。例如,如果你有一个插件,它没有给你的站点增加任何价值,并且正在加载它自己的 CSS 和 JavaScript,只要完全删除这个插件,去掉它所有的 HTTP 请求。
- 合并 HTTP 请求。如果您有必须加载的 HTTP 请求,您可以将它们合并到一个文件中。例如,代替六个小的 CSS 文件,你可以将它们合并成一个更大的 CSS 文件,这仍然会加载得更快,因为浏览器需要发出更少的请求(对于 HTTP/2 ,这并不总是正确的,我们将在下面讨论)。
我们将从关注移除 HTTP 请求的策略开始,然后我们将进入如何组合剩余的 HTTP 请求。基本的想法是去掉你能去掉的,然后把剩下的组合起来。
1.删除不必要的 WordPress 插件
首先,您需要使用瀑布分析从您的插件中提取所有请求。你可以通过搜索“插件”来做到这一点,这将调出来自 wp-content/plugins 文件夹的每个 HTTP 请求。
如果你将鼠标悬停在文件名上,你可以看到它来自哪个插件。例如,这里你可以看到一个来自你可能正在使用的滑块插件的请求。
进一步挖掘会发现 Slider Revolution 添加了三个自己的 HTTP 请求,尽管这个测试页面不包含任何滑块:

How to see where an HTTP request comes from
如果您使用滑块旋转作为关键滑块,那么您可能需要保留它。但是如果你安装它是为了测试它,然后后来移除了滑块,你现在并没有真正使用它…那么你应该移除它来摆脱那些 HTTP 请求。
基本上,你想浏览整个列表,问问自己每个插件是否真的给你的网站增加了价值。如果一个插件不是(但是增加了 HTTP 请求),那么你最好移除它。
2.用更轻量级的插件替换笨重的插件
一旦你删除了任何不必要的插件,下一步就是看看你是否可以用更轻量级的插件来替换你正在使用的插件。
例如,假设你想在你的网站上添加社交分享按钮。这是一个很好的特性,但是一些社交分享插件会增加很多 HTTP 请求。
例如,流行的 AddThis 插件添加了六个自己的 HTTP 请求(包括一些外部请求——稍后会详细介绍):

你可以通过使用更优化的替代品来削减大量的脂肪,比如 NovaShare 或 T2 的 Grow by MediaVine。
3.有条件地加载站点范围内不需要的脚本
在这一点上,你应该已经删除了你的网站上所有不需要的插件。然而,还有另一类插件可能会引起问题——只在你的站点的特定部分需要的插件,但是在任何地方都会加载它们的脚本。
就拿现在流行的联系人表单 7 插件来说吧。你可能只在几个页面上需要这个插件(比如你的“联系我们”页面)。但是,Contact Form 7 会在您站点的每个页面上加载它的脚本。例如,Contact Form 7 仍然向您的博客帖子添加一些 HTTP 请求,即使您的博客帖子没有任何联系表单。
另一个例子是 WooCommerce ,如果你只是把它作为一个支付处理器。WooCommerce 仍然会在任何地方加载它的脚本,即使在这个用例中你只需要在购物车和结账页面上使用它们。
这里的一个高级策略是有条件地只在需要的地方加载插件。例如,您可以让 Contact Form 7 加载到您的“联系我们”页面,但在其他地方禁用它。
如果你不是开发人员,你可以使用像资产清理或性能这样的插件,不需要代码。对于 Perfmatters,您首先需要启用脚本管理器。然后,您可以打开脚本管理器来查看页面上加载的所有脚本,并禁用任何不需要的脚本:

The script manager in the Perfmatters plugin
小心,如果你不小心禁用了一个真正需要的脚本,你可能会引起问题。虽然这是一种有用的策略,但也是一种高级策略。
如果你没有信心,你可能想跳过这一步,或者雇佣一个开发者来帮你。
4.删除不必要的图像(并优化其余的)
如果使用得当,图片会让你的网站更加用户友好和吸引人。他们给你的网站增加价值。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
然而,网站上的每个图像都是一个单独的 HTTP 请求。因此,如果您有没有增加价值的图像,最好删除它们,以消除那些 HTTP 请求。
比如那个搞笑的 GIF 值得吗?可能是…但也可能不是——每当你向你的内容添加更多的图片时,你都需要考虑权衡。
最后,确保调整剩余的图像的大小并进行压缩。虽然这本身不会减少 HTTP 请求的数量,但会减少这些 HTTP 请求的大小,从而加快它们的加载速度。
5.对图像和视频使用延迟加载
使用惰性加载,你的网站将等待加载文件夹下的图片、视频和 iframes ,直到用户开始向下滚动。
因为这些资源不会立即加载,所以不需要为初始页面加载发出 HTTP 请求。
从 WordPress 5.5 开始, WordPress 现在包括使用 HTML 加载属性的图片的本地惰性加载。关于实现延迟加载的其他方法(包括视频文件),你可以查看我们的 WordPress 延迟加载完整指南。
6.限制自定义字体使用和/或使用系统字体(图标字体也一样)
自定义字体对于改善网站的设计和用户体验来说非常有用。但是,您需要小心使用它们,因为您使用的每个自定义字体类型都会添加另一个 HTTP 请求。
如果你打算使用自定义字体,请确保使用较小的字体。你真的需要不同的文章标题和正文字体吗?或者你可以用同样的字体吗?你真的需要全部五种字体粗细吗?或者你可以只选择两个?
同样的道理也适用于图标字体如字体 Awesome 和 IcoMoon。图标字体可能很有用,但是你可能不需要加载多个图标字体库。最好只选择一个图标字体库并坚持使用。
最后,如果您想更进一步,完全消除与站点字体相关的 HTTP 请求,您可以考虑使用系统字体堆栈。虽然这将减少你的设计灵活性,但也意味着你的访问者不必加载任何字体文件来渲染你的网站。
(建议阅读:如何在 WordPress 中改变字体)。
7.禁用 WordPress 表情符号
默认情况下,WordPress 为表情符号添加了自己的 HTTP 请求。虽然它只是一个 5.1 KB 的 HTTP 请求,但这个文件一直是 WordPress 性能爱好者的眼中钉。在 Kinsta,我们热爱 WordPress 的性能,这就是为什么我们有一个关于如何禁用 WordPress 表情符号的完整指南。
最简单的选择是安装并激活免费禁用表情符号(GDPR 友好)插件。然而,你可以阅读我们的完整指南,了解一些其他选项。
这样做之后,你的 HTTP 请求数将减少一个,你仍然可以使用表情符号😃
8.减少/消除第三方 HTTP 请求
到目前为止,我们主要关注于减少你的 WordPress 站点服务器上文件的 HTTP 请求。然而,访问者的浏览器可能也需要从第三方服务器请求文件。
这些请求可能会更加麻烦,因为你的网站受制于第三方服务器的速度。
一些例子:
- 谷歌分析(Google Analytics)——追踪脚本托管在谷歌的服务器上,但访问者的浏览器仍然需要下载该文件。
- 嵌入式 YouTube 视频——你会看到很多对 YouTube 服务器的 HTTP 请求。
- 第三方广告服务–你会看到大量与你的广告服务相关的第三方请求。
- 谷歌字体(在谷歌的 CDN 上)——你会看到第三方请求谷歌服务器加载你的字体文件。
您可以将上述许多相同的策略应用到这些第三方 HTTP 请求中。
需要一个给你带来竞争优势的托管解决方案吗?Kinsta 为您提供了令人难以置信的速度、一流的安全性和自动伸缩功能。查看我们的计划
例如,如果一个插件添加了它自己的第三方请求(就像上面的 AddThis 插件一样),你可以删除它并使用一些更优化的东西。
对于 YouTube 视频,您可以延迟加载它们,并用图像缩略图替换初始页面加载。这将延迟添加这些 HTTP 请求,直到访问者想要播放视频。
对于必要的第三方脚本,如谷歌分析或脸书像素,你可以尝试在本地托管这些脚本。
WP Rocket 有内置的插件,可以在本地托管谷歌分析和脸书像素,或者你可以使用像 CAOS(完整的分析优化套件)这样的插件。
我们还有一些指南可能会有所帮助:
9.将图像与 CSS 精灵结合
在这一点上,您应该希望能够从您的站点发出更少的 HTTP 请求。现在,是时候研究如何组合剩下的 HTTP 请求了,从图像开始。
另一种优化网站图片的方法是将不同的图片合并成一个图片文件。然后,您可以使用 CSS 在需要的地方显示图像文件的一部分。这是一种叫做 CSS 小精灵的战术。
CSS 精灵最适合装饰图像,如标志变化或图标。您不应该将 CSS 精灵用于信息图像(如博客文章正文中的图像),因为这有两大缺点:
- SEO——因为你将图片组合成一个单一的图片文件,你不能在谷歌搜索中对单个图片进行排名。
- 可访问性——因为你不能给图片添加alt-text,使用屏幕阅读器的人将无法理解加载了 CSS 精灵的图片(尽管有一些策略可以解决这个问题)。
如果你仍然对这个话题感到困惑,这里有一个亚马逊的 CSS sprite 文件的例子——你可以看到它是如何包括一堆徽标变体和一些图标的。Amazon 使用 CSS 来确保在每个位置只显示图像文件的相关“部分”:

An example of CSS sprites from Amazon. You use CSS to “target” just a specific part of the combined image.
不幸的是,没有针对 CSS 精灵的“设置好就忘了”插件。然而,你可以找到一些工具来帮助你,比如这个 CSS Sprite 工具:
- 将您想要合并的图像上传到工具。
- 然后,该工具将为您提供一个组合图像文件,以及您上传的每张图像的一些 CSS 代码。
- 将合并后的图片文件上传到你的 WordPress 网站。
- 使用 CSS 代码在内容中显示图像。所提供的 CSS 将只自动选择组合图像文件的适当部分。
10.组合 CSS 和 JavaScript 文件
在你的 WordPress 主题和你的插件之间,你的网站可能会加载多个 CSS 样式表和 JavaScript 文件,这意味着浏览器需要多个 HTTP 请求来下载渲染页面所需的 CSS 和 JavaScript。
为了减少所有这些单独的请求,可以将这些单独的文件/样式表合并成一个文件/样式表。这被称为文件组合或文件连接,取决于你使用的工具。
许多 WordPress 缓存插件包括组合 CSS 和 JavaScript 文件的特性。例如,你可以在 Kinsta 使用的 WP Rocket,让你只需点击几下就可以启用这两个功能。
进入 WP Rocket 设置中的文件优化标签。然后,启用缩小,然后合并文件:

How to combine CSS and JavaScript in WP Rocket
为了更详细的了解,请查看我们完整的 WP 火箭指南。
您还可以使用自动优化来组合 CSS 和 JavaScript 文件。要合并文件,进入设置→自动优化并选择选项:
- 聚合 JS 文件
- 聚合 CSS 文件
为了更详细的了解,请查看我们完整的自动优化教程。
文件组合的好处不太明显与 HTTP/2 ,这是什么你的网站使用如果你在 Kinsta 主机。HTTP/2 被设计成在传输多个小文件时更有效,这意味着一个大的 CSS/JS 文件和多个小文件之间的差别更小。
基本上,如果你在 Kinsta 托管,你可能不需要做这个步骤来改善你的页面加载时间。这是因为 Kinsta 客户可以在他们的 MyKinsta 仪表板中直接访问代码缩小功能。这将有助于提高整体优化,让客户只需点击一下鼠标就能实现 CSS 和 JavaScript 的自动缩小。
我们建议仍然测试它,因为它仍然有利于一些网站,但你也可能不会注意到任何实际页面加载时间的差异。
然而,许多性能测试工具,如 GTmetrix,仍然不能识别 HTTP/2,因此 GTmetrix 可能仍然会显示“减少 HTTP 请求”消息并降低您的分数。但是请记住,分数没有真正的页面加载时间重要。
11.推迟呈现阻塞 JavaScript
推迟呈现阻塞 JavaScript 本身并没有消除 HTTP 请求。然而,它优化了它们的加载方式,这对你网站的感知加载时间有同样的影响。
它还可以帮助解决 Google page speed Insights/light house 中的“避免链接关键请求”消息。
通过推迟对某些文件的请求或异步加载它们,可以防止某些不重要的资源“阻塞”快速加载站点可见部分所需的资源。
关于为什么会发生这种情况,你可以阅读我们关于理解网页的关键渲染路径的指南。
然后,你可以遵循我们的详细指南来消除 WordPress 上的渲染阻塞资源。
减少 HTTP 请求的最佳 WordPress 插件
如果你正在寻找一些“一体化”的 WordPress 插件来减少 HTTP 请求,我们推荐上面教程中的两个插件:
虽然你仍然需要手动评估你的主题和插件,看看它们是否发出了太多的 HTTP 请求,但一旦你完成了清理,这两个插件都可以帮助你优化你网站上的所有内容。
摘要
站点上的每个独立资源都会添加一个 HTTP 请求。一个图像是一个 HTTP 请求,一个 CSS 样式表是一个 HTTP 请求,一个字体文件是一个 HTTP 请求,依此类推。
如果你使用 WordPress ,你的主题当然会添加自己的 HTTP 请求,许多插件也会添加自己的 HTTP 请求。您还会收到来自您使用的任何图像和您添加的第三方脚本(如分析工具)的 HTTP 请求。
更多和/或更大的 HTTP 请求会导致网站速度变慢。这就是为什么当您使用 GTmetrix 或 PageSpeed Insights 等速度测试工具时,您会经常看到类似“减少 HTTP 请求”、“优化 HTTP 请求”或“避免链接关键请求”的消息。
要减少站点上 HTTP 请求的数量,您可以遵循我们上面详述的步骤。
关于如何在 WordPress 中进行更少的 HTTP 请求,你还有什么问题吗?请在评论中告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
加入金斯塔的 WordPress 脸书集团赚钱
原文:https://kinsta.com/blog/make-money-wordpress-facebook-group/
我们希望你们所有人都能以 WordPress 为平台取得成功,不管你是不是 Kinsta 的客户。你们中的许多人经营联盟利基网站,高流量博客,管理大型电子商务(WooCommerce 和 EDD)商店。不管你在做什么,WordPress 可能在你的收入中扮演着关键的角色。
找出其他赚钱或增加收入的方法可能是你一直在想的事情。🤑令人沮丧的是,许多新的策略和方法需要时间来测试,而时间是你们很多人所没有的。
因此,我们决定发起用 WordPress 脸书集团赚钱,完全专注于如何用这个星球上最好的 CMS 增加你的收入!学习联盟营销技巧,并与他人聊天,谁看到了成功,并获得适用的捷径,以获得更高的收入。
Make money with WordPress Facebook group
为什么你应该加入脸书集团
我们将是第一个承认大多数脸书团体只是浪费时间的人。它们要么充满了垃圾邮件,要么是完全无用的信息。然而,我们可以向你保证,这一个是不同的。让我们来看几个原因。
1.与 Kinsta 营销团队聊天
首先,脸书集团的成员可以直接与金斯塔营销团队聊天。真的!问我们三个(如下图)任何你想要的。
当然,我们的专长是 WordPress 托管,但我们三个加起来有几十年的 WordPress 网站和博客工作经验。我们中的一些人运营着亚马逊利基网站、基于谷歌广告的博客、翻转网站,甚至建造/销售高级 WordPress 插件。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
不仅如此,我们还帮助将 Kinsta 的收入从 0 美元提高到 7 位数。所以我们会想,通过反复试验,我们对如何建立一个成功的 WordPress 业务略知一二;无论是与 SaaS 的产品,内容营销,或战略广告合作伙伴关系。
利用我们这些年来学到的东西,开始你的成功。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
Subscribe NowLet's support each other by sharing knowledge and experience to earn more money with WordPress. 🤘Click to Tweet
2.了解有利可图的 WordPress 网站和待售企业
我们总是在寻找新的盈利的 WordPress 网站(博客、插件商店、主题商店等),在市场上出售。你可能会惊讶于你每天访问的一些大型网站有多少次是在幕后交易的。对于你们中的一些人来说,这可能是一项伟大的投资,或者可能是你一直想要的 WordPress 行业全职工作的一个即时开始。又或许,你只是想要内容。😏

WordPress business for sale
在脸书小组,你可以谈论一个网站的潜力,或者流量的变化会如何影响你应该在 Flippa 上支付的费用。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features

WordPress blog for sale
3.与其他成功的 WordPress 博客作者讨论策略
在不到一个月的时间里有超过 250 名新成员,在这个群体中已经发生了很多很棒的讨论。许多成功的 WordPress 博客作者和企业主正在分享他们自己的技巧和策略。以下是您可能会在小组中看到的众多话题中的几个:
- 我如何增加我的联盟营销收入?
- 我应该加入哪些好的 WordPress 联盟项目?
- 我想开始我的联盟事业,我在哪里可以买到 WordPress 业务?
- 如果我的 WordPress 站点只有一点点流量,那么增加收益最好关注什么?
- 我怎样才能增加我的谷歌广告收入?
- Google AdSense 有更好的替代品吗?
- 什么是更好的联盟计划:经常性佣金或一次性佣金?
- 哪个 WordPress 插件最适合重定向和屏蔽附属链接?
- 我如何外包内容创作来增加代销商的收入?
- 我要卖我的 WordPress 网站,我应该在哪里卖,卖多少钱?
- 什么类型的流量转换更好?
- 我应该多样化联盟计划还是坚持一个或两个利基?
- 广告拦截器如何影响代销商行业?
- 我能做些什么来增加会员转化率?
- 我的网站速度会影响我的收入吗?
The only stupid question is the one you don't ask. 😉Click to Tweet
4.无垃圾邮件保证
我们可以向你保证,没有人比我们更讨厌垃圾邮件!虽然我们总是鼓励富有成效的主题讨论,但在我们的脸书小组中,您永远不必担心垃圾邮件。就像我们的 Kinsta 博客一样,我们希望每个成员从脸书的对话中学到一些东西。最好的脸书小组是那些成员分享适用技巧的小组,每个人都可以应用到他们自己的 WordPress 网站上。
摘要
你准备好加入最好的和发展最快的脸书集团之一了吗?点击这里加入。我们很乐意和你更多地讨论在你的 WordPress 网站上赚钱时什么是有效的,什么是无效的。不要害羞。加入对话或向小组成员提问。
有什么想法吗?我们很想听听您对我们新成立的脸书集团的看法,或者对我们如何提供帮助有什么建议。别忘了去看看 Kinsta 的加盟计划。每推荐一个人,您就可以赚取高达 500 美元的佣金+ 10%的每月定期终身佣金。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
2022 年 8 个最佳 MAMP 备选方案
在开发新网站时,本地 web 开发环境通常是最佳选择。MAMP 是最受欢迎的 web 开发解决方案之一,但它并不适合所有人。幸运的是,你可以使用大量的 MAMP 替代品。
本地环境帮助你在本地设备上建立你的网站,直到它准备好转移到网络主机上。一些本地开发工具也为您提供了强大的功能,例如建立多个本地站点并将这些项目推向生产。
在这篇文章中,我们将仔细看看 MAMP,衡量其利弊,然后列出我们推荐的八大 MAMP 替代方案。
我们开始吧!
T3】
什么是 MAMP?

MAMP
MAMP 代表 macOS、Apache、MySQL/MariaDB,以及 PHP、Perl 或 Python。如果您以前从事过 web 开发,您会将这些软件组合视为“堆栈”MAMP 获得所有这些组件,并在 Windows 或 macOS 上设置全栈。这样,您就可以访问在本地启动新项目所需的 web 开发软件。
除了为您设置完整的堆栈之外,MAMP 还提供了一个界面,使您无需使用命令行即可与每个组件进行交互:

MAMP Interface
该界面使得根据您正在处理的项目类型来配置您的 web 堆栈变得容易。此外,你可以随时点击几下鼠标来启动或停止你的 MAMP 服务器。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
寻找 MAMP 替代?👀这些强大的工具可以帮助你将那些项目推向生产🛠 点击推文
MAMP 的利与弊(以及何时考虑替代方案)
MAMP 是处理简单的网络开发项目的一个极好的工具。然而,软件不是没有限制或缺陷的。使用 MAMP 有四个明显的缺点:
- 启动多个本地项目非常复杂。总的来说,MAMP 并没有优化到可以帮助你启动众多的本地项目。例如,使用 MAMP 建立多个本地 WordPress 网站需要几个变通方法。
- 您在多个项目中使用相同的软件堆栈。与其他本地 web 开发工具不同,您可以为每个项目共享相同的软件堆栈。这意味着你不能为每个本地网站设置独特的配置。
- 地方项目之间没有条块分割。每个 MAMP 网站共享相同的服务器和资源。其他本地 web 开发工具支持虚拟化来划分您的项目。
- 您不能修改 MAMP 软件堆栈。你看到的栈就是你得到的栈。如果你想访问其他的网络开发软件,你需要手动设置,并且你不能使用 MAMP 的控制面板来配置它。
抛开所有这些不利因素,如果你打算做一个 WordPress 本地开发项目,MAMP 是一个不错的选择。MAMP 栈包含了 WordPress 需要的所有组件,包括网络服务器、数据库和 PHP。实际上,你可以用 MAMP 在几分钟内启动一个 WordPress 网站。
同样,如果您不习惯使用命令行,MAMP 可以通过其控制面板轻松管理软件堆栈的每个组件。然而,控制面板本身非常有限。如果您需要更改面板中没有包含的任何配置,那就太不幸了。
考虑到这一点,有大量的 MAMP 替代品,既能对本地 web 开发项目提供更多的控制,又能提供易于使用的界面。如果这是你感兴趣的东西,那么你可能想看看几个不同的选项。在下一部分,我们将与您分享我们的最佳选择。
2022 年 8 大 MAMP 替代方案
在这一节中,我们将向您介绍其他软件选项,它们可以做 MAMP 做的所有事情,在许多情况下,甚至更多。我们将讨论专注于 WordPress 的本地 web 开发工具和其他适用于各种本地项目的选项。我们开始吧!
1.德夫金斯塔

DevKinsta
DevKinsta 是我们自己的本地 WordPress web 开发软件。该程序使你能够使用虚拟化建立多个 WordPress 网站。有了 Kinsta,你建立的每个网站都使用自己的 Nginx 、 PHP 和 MySQL 实例。

DevKinsta Interface
该软件自动为每个新的 WordPress 网站设置 HTTPS,并记录任何错误。你可以监控每个网站的电子邮件,并使用开源数据库管理工具 Adminer 访问它们的数据库。
如果你是 Kinsta 的用户,你会很高兴知道 DevKinsta 可以让你点击一下就能把网站推上舞台。这意味着您可以在本地处理项目,将它们推向试运行,然后投入生产,而无需手动复制文件。此外,DevKinsta 可以导入您的 Kinsta 站点的副本,因此您可以在本地使用它们。
价格: DevKinsta 是 100%免费的,即使你不是 Kinsta 的用户。
2.WampServer

WampServer
就功能而言,WAP server 与 MAMP 相对相似。主要区别在于您可以访问更紧凑的堆栈。WampServer 支持 Apache ,PHP,和 MySQL ,它运行在 Windows 上。
与使用完整的控制面板不同,您主要使用一个简单的菜单与 WampServer 进行交互,该菜单使您能够访问它的 PHP 和数据库管理工具。您也可以随意停止和重新启动服务。
最终,WampServer 是一个轻量级本地 web 开发工具,非常适合单个本地项目。如果你想测试一个本地 WordPress 设置,WampServer 为你提供了设置内容管理系统(CMS)所需的所有软件,没有任何问题。
价格: WampServer 是一个开源项目。
3.XAMPP

XAMPP
XAMPP 是一个开源项目,包含 MariaDB 、 Perl 、PHP 和 Apache。它适用于 Windows、macOS 和 Linux 发行版。XAMPP 的一个突出的方面是它允许你在设置过程中选择你想要的堆栈组件。
除了网络开发软件,XAMPP 还配备了 FTP 和邮件服务器。这意味着你可以用 XAMPP 建立本地网站,通过 FTP 连接它们,收发电子邮件。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
与 MAMP 或 WampServer 相比,XAMPP 控制面板为您提供了更多的选项来管理您的本地开发设置。您可以访问每个软件组件的各种配置选项和管理控制。XAMPP 还为您提供深入的日志,以便您可以跟踪环境的每一次变化。
总的来说,XAMPP 的特性集使其成为本地 WordPress 主题和插件开发的完美选择。如果你试图对本地网络项目进行故障诊断,它的日志也是一个很大的资产。
价格: XAMPP 是一个开源项目。
4.桌面服务器

DesktopServer
DesktopServer 可能是最古老的本地可视化界面 WordPress 开发工具。该软件允许你使用一步一步的向导建立多个本地 WordPress 网站(就像 DevKinsta 一样)。然而,你仍然需要运行五分钟的 WordPress 安装程序来完成安装过程。
使用 DesktopServer 最大的缺点是你只能访问三个免费的 WordPress 网站。DesktopServer 的高级版本包含了许多功能,使本地 web 开发变得更加容易。在这些功能中,你有 WP-CLI 支持,建立多个 WordPress 网站的能力,存储网站蓝图的选项,以及多站点支持。
总而言之,如果你对配置本地 WordPress 开发栈的各个部分感到不舒服,DesktopServer 是相当容易使用的。然而,如果你打算运行多个网站,你需要考虑 DesktopServer 的高级版本。
价格: DesktopServer 提供免费和高级许可起价 99.95 美元。
5.EasyPHP

EasyPHP
到目前为止,我们主要关注那些即使你没有 web 开发背景也可以使用的工具。不过, EasyPHP 有点不一样。这是一个面向 PHP 爱好者和开发者的 MAMP 替代品。
有了这个软件,你可以得到一个包含 Apache、MySQL、PHP 和 Nginx 的堆栈,所有这些都在一个只适用于 Windows 的包中。EasyPHP 还包含 web 开发工具,包括 Xdebug 、 PhpMyAdmin 等等。
该软件还提供了安装扩展其功能的模块的选项,例如对 Laravel 的支持、移动测试插件和 PHP 代码嗅探器。如果你真的想在 Windows 环境下开发 WordPress,你可以考虑这个本地开发选项。
与我们世界一流的支持团队一起体验卓越的 WordPress 托管支持!与支持我们财富 500 强客户的同一个团队聊天。查看我们的计划
价格: EasyPHP 是开源软件。
6.安普斯

AMPPS
如果你曾经使用过提供 cPanel 的网络主机,那么你很可能熟悉 Softaculous 。该软件使您能够在您的 web 服务器上安装其他软件和 CMSs。它提供了一种最简单的安装 WordPress 的方法(如果你不想手动安装的话),如果你开始了解这个平台的话,这是非常完美的。
AMPSS 代表 Apache、MySQL、MongoDB、PHP、Perl、 Python 和 Softaculous。在所有本地开发工具中,这是提供最广泛的自安装 CMS 和应用程序的工具。您还可以完全控制 PHP 和 Apache 的安装。该软件可以让你在不同的 PHP 版本之间切换,只需点击几下鼠标。
AMPSS 的免费版本不限制你可以建立的本地网站的数量。然而,那个版本没有 AMPPS 内置的 WordPress 管理器工具。这个功能可以帮助你管理多个 WordPress 网站,使用一个非常类似于多站点设置的面板。
价格: AMPSS 是免费的,带有 WordPress manager 工具的高级版本从每年 49 美元起。
7.Zend 服务器

Zend Server
在我们讨论过的所有 MAMP 备选方案中, Zend Server 是我们归类为“企业”解决方案的唯一选择。顾名思义,Zend Server 使您能够建立一个本地 web 服务器。它支持多种选项,包括 Apache、IIS 和 Nginx。然而,当涉及 PHP 集成时,该软件大放异彩。
有了 Zend Server,你可以访问超过 75 个不同 CMS(包括 WordPress)和其他软件的插件。这些插件使你能够在本地设置应用程序,或者将 Zend Server 与第三方服务集成,例如亚马逊网络服务(AWS) 。
Zend Server 的主要卖点之一是获得 PHP 自动更新和补丁。该软件包括强大的调试和速度优化工具、应用程序监控功能和数据缓存选项。
如果您计划将本地开发软件用于客户端项目,Zend Server 是一个值得考虑的选项。然而,Zend Server 也是这个列表中唯一不提供完全免费版本的 MAMP 替代产品。另外,它只适用于 Windows 和 Linux 发行版。
价格: Zend Server 提供 30 天免费试用,许可证从开始,每年 250 美元。
8.无赖

Vagrant
与这份名单上的任何其他 MAMP 备选方案不同,它不允许你建立一个预先确定的本地软件开发栈。其核心是一个虚拟化工具,允许你用很少的开销启动你需要的任意多的机器。根据每个项目的需要,您可以为每台机器分配特定数量的硬件资源。
既然我们在谈论一个虚拟化工具,那么流浪的机器可以拥有它的环境。您只能通过命令行与设备进行交互,并且您可以完全控制要设置的软件堆栈及其配置。
有了 vagger,您可以访问一个巨大的“盒子”库,这些盒子是预先构建的环境,您只需几个命令就可以部署它们。WordPress 开发者有很多奇妙的流浪盒,包括 VCCW 和塞拉沃以及其他选项。
如果你习惯使用命令行的话,你可以用一个神奇的工具运行任意多的本地虚拟机,每个虚拟机都有自己的 WordPress 设置。而且,你可以很容易地与其他用户共享流浪机器,很容易在不同的计算机上复制相同的工作环境。另外,它适用于所有主流操作系统,包括 Windows、macOS 和 Linux。
价格:流浪者是开源软件。
这 8 个强大的 MAMP 备选方案将为你的下一个项目提供大量选择💪
摘要
MAMP 是本地 WordPress 开发的一个极好的工具。然而,有一整个世界的 MAMP 替代品,其中许多提供了更广泛的开发选项,并让您对您的环境有更多的控制。
如果你完全致力于 WordPress 项目,我们自己的 DevKinsta 工具提供了最友好的用户界面,你可以用它来启动你需要的许多本地网站。对于更多样化的本地 web 开发体验,您可能会考虑使用流浪者。有了这个软件,您可以为任何类型的开发项目启动任意多的本地虚拟机。
准备好将您的开发项目投入使用了吗?金斯塔是你最好的选择。我们提供协助迁移和 30 天退款保证。查看我们的计划或与我们的销售代表交谈,找到满足您需求的理想计划。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 控制面板中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
用 MyKinsta 管理多个 WordPress 站点——轻而易举
我们对市场上现有的任何控制面板解决方案都不满意,所以我们专门为 WordPress 从头开始构建了自己的解决方案。管理多个 WordPress 站点的能力从未如此简单!无论你是在你的 WooCommerce 商店上设置 SSL,挖掘你的分析,还是添加 301 重定向, MyKinsta 让这变得轻而易举。
多年来,随着网站的发展,我们的仪表板经历了多次设计和品牌的迭代。我们所做的许多改变都是基于用户反馈和我们不断添加到托管平台的新功能的迫切需要的整合。UI 现在更干净、更快、更直观。
今天,我们将带您快速浏览仪表板,并向您展示 MyKinsta 如何帮助您简化工作流程。在 Kinsta 的团队致力于提供持续的改进,在接下来的几个月里,我们将发布许多令人兴奋的新集成和功能。
感谢您的反馈,继续关注!
在我们开始之前,我们首先要感谢多年来提供反馈的所有人。没有你我们不可能成功。我们会考虑每一个请求(它们都会被记录下来,并在我们的团队中讨论)。我们试图在新功能准备就绪并经过全面测试后尽快推出新功能。这节省了每个人的时间,因为许多新功能通常意味着我们的支持团队需要更少的交互。我们希望您能够从仪表板上做您需要做的一切事情!
刚刚报名了 @kinsta 已经是我的最爱了。主持人。永远不会。帐户界面是如此干净和简单!
—Gedaly Guberek(@ Gedaly)2019 年 2 月 4 日
在您的托管帐户中管理多用户访问
如果你经营一家企业或管理大型项目,你就会知道多用户环境有多重要。在这篇文章中,我想就如何使用 WordPress 的内置工具和 MyKinsta 提供给你的一些高级功能安全地操作一个网站给出一些提示和技巧。
多用户环境的好处
能够访问不同用户级别的软件有两个主要好处——安全性和便利性。
如果只有一个用户对你的托管账户拥有所有权级别的访问权,而所有其他用户都有降低的权限,你就减轻了很大一部分风险。每个用户都可以访问他们需要的东西,仅此而已。
对用户的信任只是问题的一部分。每个用户都有可能影响任何服务的第三方登录——主要是他们的电子邮件。如果有人黑了一个信任的员工的电子邮件,他们可能会破坏你的应用程序。
至于方便,给每个人他们需要的访问权限可以减轻他们的工作。如果你在 MyKinsta 中给用户账单访问权限,他们将根本无法访问网站、分析和其他数据。他们只看到与计费相关的项目,如公司设置和发票。降低噪音可以让计费用户更轻松地完成工作。这在代理情况下也很方便,因为你的会计师不一定有权访问网站的详细信息。
主机和 WordPress 账户
托管的 WordPress 主机可能与其他应用程序略有不同,因为你是在两个截然不同的软件系统下操作的。
与访问你的 WordPress admin 相比,访问你的托管仪表板( MyKinsta for Kinsta)通常应该被限制在一个小得多的用户集合中。你可能有许多作者、校对、编辑和开发人员,但是在大多数情况下,他们并不都需要访问你的托管环境。
在 MyKinsta 中建立一个良好的多用户系统
在这一节中,我们将通过 MyKinsta 向您提供一些建议,但是一般原则可以应用于任何托管环境。在 MyKinsta,我们提供公司和网站用户。公司级用户可以访问公司级信息,而站点级用户只能访问单个站点。
我们在公司级别提供四种用户角色。
- 公司管理员可以访问一切,包括所有网站。
- 公司开发人员可以管理所有网站,但看不到公司账单或设置。
- 公司计费用户只能访问公司设置和计费信息,不能访问网站。
- 公司所有者拥有与公司管理员相同的权限,并增加了请求关闭账户的能力。
对于站点级用户,我们提供两种用户角色。
- 站点管理员有权访问指定站点的所有环境(实时和临时)。
- 站点开发者只能访问指定站点的临时环境。
有关我们的用户级别的更多信息,请查看我们的知识库文章,了解我的 Kinsta 角色如何工作。
公司级用户
考虑到这一点,您可以为您的用户设置正确的访问权限,以下是我们的建议:
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
- 如果你拥有一家公司,你就被设计成了公司的所有者。这是一个特殊的名称,允许您删除您的公司。
- 如果你有一个值得信任的经理,比如你的主要商业伙伴或首席运营官,你可以让他们成为公司的管理者,这样他们就可以为你管理你的生意。
- 您的会计或财务总监可以被设置为公司开票用户,以访问发票和其他财务相关数据。
- 如果你有一个主要开发人员或首席技术官,你可以让他们成为公司开发人员。他们将能够管理所有站点的实时和暂存环境,而无需担心公司的详细信息或发票。
站点级用户
根据您的业务设置,您会希望以不同的方式邀请站点级用户。以下是一些需要考虑的场景:
- 如果你是一家全方位服务机构,为他们管理客户网站的方方面面,你可能根本不需要网站级用户。如果你有几个开发人员在你所有的网站上工作,让他们都成为公司开发人员可能是值得的。
- 如果您有一个庞大的团队管理数百个站点,那么让特定用户只访问您站点的一个子集可能是一个好主意。这可以通过授予站点管理员或站点开发人员访问权限来实现,这取决于您是否希望提供对实时和临时环境的访问权限。
- 如果你正在培训一个开发者加入你的团队,你可以给他们站点开发者访问你的站点的权限。这将允许他们只管理暂存环境。任何错误都不会对现场产生影响。
- 如果你拥有一个网站,并且刚刚雇佣了一个开发者,你可以给他们网站开发者的访问权,直到你对他们的工作满意为止。您也可以将他们的访问权限保持在该级别。完成后,您只需点击一下,即可推送您的暂存环境。然后,您的开发人员可以使用登台环境继续下一个版本的工作
要了解关于 MyKinsta 用户角色的更多信息,请查看我们深入的知识库文章。
高级用法
我们添加了一些批量操作,以确保您可以在尽可能短的时间内完成所有设置。其中最重要的两个是向一个站点添加多个用户和如何从站点移除用户。参见描述和视频的链接。
使用 WordPress 用户角色
如果你将 MyKinsta 的多用户功能与 WordPress 的内置角色功能结合使用,你将大大降低风险。上面的建议同样适用于 WordPress。默认情况下,WordPress 提供以下角色:
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
- 管理人员
- 编者ˌ编辑
- 作者
- 捐助者
- 订户
在本帖中,我们会给你一个很好的解释,每一个都是做什么的。简而言之:管理员可以做任何事情。编辑可以管理所有帖子,而作者只能管理自己的帖子。投稿人可以撰写和管理自己的帖子,但不能发布。订户只能管理他们的个人资料。
在 Kinsta,我们让作者扮演投稿人的角色,因为出版是由营销团队完成的。一些作者,特别是那些在我们的非英语网站上的作者,比如 T2 的西班牙语博客,可能会得到编辑的角色。这是因为他们可能需要对帖子做一些小的编辑,而由于语言障碍,我们不能这样做。即便如此,这些都是值得信赖的合作伙伴,一个错别字总比一个安全漏洞好。
管理员权限只给几个人,以确保我们有一个人在任何时候都在线,如果需要的话,可以管理所有的设置。
如果您需要修改默认角色或想要创建自己的角色,您可以通过自定义代码或插件来完成,如用户角色编辑器。这些方法让你对整个网站进行细致的控制。
T3】
进一步的良好做法
角色和权限与一个人在公司中的层级无关。不要因为你是首席执行官就坚持到处都有一个活跃的管理员账户。换句话说:不要让你的自我支配你的权限。
在 Kinsta,我们使用谷歌工作空间和1 密码。 Google Workspace 非常棒,可以在紧急情况下重置任何公司电子邮件帐户的密码,1Password 非常适合存储登录凭据——包括双因素验证码。这样,如果经理真的需要,他们可以访问大多数帐户,而不必为我们使用的每个服务操作一个管理帐户。
定期进行安全检查。组织变化很快,忘记将某人从项目中移除并不罕见。安全扫描确保一切都是最新的和安全的。在网站上,我们每隔几个月就做一次快速扫描。如果拥有作者角色的用户有一段时间没有写任何帖子,我们会让他们成为贡献者。如果他们再次开始写作,他们会让我们知道,然后我们可以就更新作出决定。
MyKinsta 多用户的未来
我们基于 UX 团队进行的采访,从头开始构建了多用户功能。我们解决了出现的最常见的情况,我们认为我们已经做出了每个用户都会喜欢的东西。我们将继续听取反馈,改进 MyKinsta 的这个角落,就像我们改进其他系统一样。
我们对满足代理商的需求特别感兴趣。如果您有任何想法、想法或评论,请告诉我们。现在就登录 MyKinsta 或抓住我们的计划之一开始吧。我们所有的计划都支持多用户。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
我们正在用谷歌云革新托管 WordPress 主机
原文:https://kinsta.com/blog/managed-wordpress-hosting-in-the-google-cloud/
在 Kinsta,我们相信速度和稳定性是一个伟大网站的标志。我们的使命是毫不妥协地为您带来顶级的托管 WordPress 主机服务。这就是为什么今天我们宣布一个基于谷歌云平台的全新基础设施。
我们结合了闪电般快速的 PHP 8.0 和 8.1、 MariaDB 、最新的 LXD 容器技术和开发者工具,如 SSH 和 WP-CLI 。我们相信我们已经创造了今天可用的最好最快的托管解决方案。
为什么我们要在 2016 年转向谷歌云
早在 2015 年,我们就开始计划基础设施大修。通过与多家数据中心提供商合作,我们看到了很大的改进空间,但我们受到了这些提供商强加给我们的限制。
大约 6 个月后(2015 年末),我们的一个主要提供商开始遇到故障和其他中断,这不仅给 Kinsta 带来了问题,也给其他托管公司带来了问题。最糟糕的是,这导致我们的客户停机,这是不可接受的。这坚定了我们的决心——寻找符合我们质量标准的新供应商是前进的方向,我们走在了正确的道路上。
通过在 2016 年迁移到谷歌云平台,我们知道我们可以确保高水平的冗余,并对我们的服务器进行粒度控制。这将允许我们调整你的主机环境——使你的网站更快、更稳定、更安全并且完全隔离。
此外,我们可以为您带来两全其美的产品:隔离和可扩展性,甚至超过其他提供商最大的 VPS 选项。决定已经做出,我们将把我们的基础设施转移到谷歌云平台!
托管环境的飞跃
所有的主机环境都由两部分组成:硬件和软件。找到合适的硬件只是时间问题,所以我们投入了成千上万的开发时间来打造当今最现代的软件套件。
我们最重要的两个工具是 LXD 和 PHP 8.0 和 8.1。 LXD 是下一代容器管理程序,它使我们不仅可以完全隔离每个帐户,还可以完全隔离每个单独的站点。这确保了没有资源被共享,也增加了安全性。
PHP 8.1 是 WordPress 所基于的服务器端语言的最新版本。PHP 8.1 比它的前身快得多,也更有效率,在许多情况下,网站的渲染速度是它的两倍。除了速度的提高,这使你的网站更加稳定,节省资源。

Load time decreasing significantly on a client’s site after moving to Google Cloud Platform
关注开发者
我们认为是时候给开发者授权了。 SSH 访问、Git 和 WP-CLI 在我们所有的谷歌云账户上都是现成的,为你提供你需要的工具来更好更快地完成工作。
我们现有的客户呢?
如果您是我们以前的 VPS 计划或传统共享计划的现有客户,我们将联系您,进一步了解这对您意味着什么。在一天结束的时候,你总是可以选择继续你目前的计划;我们将继续支持我们以前的所有计划。
T3】
展望未来
在一些现有客户的帮助下测试了我们的新基础设施后,我们收到了非常积极的反馈,总体体验非常好。这些站点报告了速度的提高和资源使用的全面大幅减少。
谷歌云平台、LXD、PHP 8.1 和我们注入新基础设施的所有其他优秀软件解决方案将为我们的用户提供更好、更快、更强大和更可靠的网站,最终这才是最重要的。
在所有这些变化中,我们保留了让 Kinsta 变得伟大的一切。我们的专业技术支持和对客户满意度的关注将保持不变。
我们期待为您带来下一代托管 WordPress 主机,谷歌云上见!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
选择托管 WordPress 主机的 9 大理由
今天,为了让你的企业在网上取得成功,你必须处理好从营销、快速托管、社交媒体、安全、内容创作等等的方方面面。这一切会很快变得令人不知所措,压力很大。
今天我们想探究为什么选择一个托管的 WordPress 托管服务,而不是一个共享的主机或小型 VPS,会是你对你的网站做出的最重要的决定之一。
你的企业应该得到最好的,一个托管的 WordPress 主机给你竞争优势💪让我们告诉你怎么做!
什么是托管 WordPress 主机?
首先,我们所说的托管 WordPress 主机到底是什么意思,它与共享或自己动手(DIY)托管有什么不同?
托管 WordPress hosting 是一项具有多种功能和支持的服务,帮助网站高效、安全、快速地运行,将技术诀窍留给专家,这样您就可以专注于业务运营。
为了更好地解释这一点,让我们首先把一般的在线人群分成我们通常看到的三种 WordPress 托管场景。
1.共享 WordPress 主机
第一批人通常由刚刚起步的人组成,他们选择使用低成本的共享 WordPress 主机。其中包括 GoDaddy 、 Bluehost 、 Hostgator 、 SiteGround 、 Media Temple 、 OVH 、 GreenGeeks 等。通常,这些人是:
- 建立他们的第一个网站
- 远离 WordPress.com 的迁徙
- 在严格的预算下,需要保持尽可能便宜的东西
- 不熟悉不同类型的主机之间的差异,因此只是简单地根据价格做出决定(提示:这不好!)
隐性成本
无论你如何计算,扣除费用后,每月 3 美元并不会给托管公司带来任何收入——当你将支持成本加入其中时,情况就更是如此。一张支持票,他们就已经亏损了。
共享主机通过追加销售和隐藏费用赚了很多钱。这些追加销售包括迁移、域名注册、续费、 SSL 证书(甚至对于 WooCommerce 网站)等。
隐藏节流
大多数主机提供他们的“无限资源”计划来赚钱。你们可能都看过这个。
嗯,现实世界中没有无限的资源。主机会抑制消耗大量资源的客户端。这反过来会导致那些愤怒的客户离开,为更多不使用大量资源的客户腾出空间。
最终,你会看到一个恶性循环:托管公司推出廉价计划,与他们希望不会使用大量资源的客户签约,并购买追加销售。
都是体积的问题。
资源稀缺
此外,因为计划是如此便宜,它通常迫使主机过度拥挤他们的服务器来整合资源。所以即使你不知道,你的网站可能和 500 多人在同一个服务器上。其他站点出现的任何性能问题都会反过来影响您的站点。

Shared WordPress hosting.
一定要看看我们 CBO 的深度文章,关于令人震惊的真相:WordPress 主机如何廉价运行。有些可能会让你震惊。
2.DIY VPS WordPress 主机

DigitalOcean, Vulture, and Linode.
第二类人群是典型的 bootstrap 创业公司和有更多开发或 WordPress 经验的人。他们是 DIY 人群。这些人通常仍在努力省钱,但他们通常也关心性能,并意识到其对业务成功的重要性。典型的设置可能包括使用数字海洋、 Linode 或 Vultr VPS,以及像 ServerPilot 这样的工具来更容易地管理它。
DIY 方法可能很棒,但是如果你不小心的话,它也可能适得其反。不要因为想修修补补就走这条路! 你的时间很值钱,你应该把它花在发展你的业务上。利用 Kinsta 团队十多年来每天修复 WordPress 问题的经验。
3.托管 WordPress 主机
第三类人群通常是中小型企业、高流量博客,以及寻找专门的企业 WordPress 托管服务的公司。这群人意识到托管 WordPress 主机是一项很好的投资,因为它节省了他们的劳动力和时间,并且通常提供更好的性能,因为它是针对 CMS 进行微调的。
托管 WordPress 的费用一般在每月 25 美元到 150 美元之间,或者更多,这取决于你网站的规模和需求。你可能熟悉的一些流行的托管 WordPress 主机包括 Kinsta 、 WP 引擎、飞轮、 Pressable 、 Media Temple 、Pressidium、 Pagely 。
像 jQuery、Plesk、Dyn 和 NGINX 这样的大公司使用 WordPress 来托管他们的网站。查看我们在 130 多个主导网络的顶级 WordPress 网站上的深度帖子,查看更多示例。
为什么你应该选择托管 WordPress 主机
仅仅因为我们在上面把人们分成三个不同的组,并不意味着它总是正确的方法。你应该做你的研究,为你的事业做出正确的选择。也许你从 DIY 方法开始,在成长后升级到托管。
查看我们的解释者视频:如何选择正确的 WordPress 主机提供商
或者你可以投资托管,首先,把你所有的精力放在发展你的业务上。没有对错之分,但是让我们分享 9 个托管 WordPress 主机可以让你受益的原因。
1.你得到了上级的支持
你应该选择托管 WordPress 主机的首要原因是卓越的支持。托管 WordPress 主机提供商通常只与 WordPress 平台打交道。这意味着他们不会干扰 Drupal、Magento 或任何其他类型的平台或软件。通常,专注于一个领域的支持团队会成为该领域的专家,即使他们不是!
当 Kinsta 刚开始的时候,我们知道这个行业在如何处理 WordPress 支持方面已经崩溃了。这就是为什么我们的团队结构完全不同。我们没有单独的级别或层级。帮助您的支持团队成员完全有资格修复各种类型的问题,直至解决问题。不同的销售代表之间没有来回走动,因为我们认为这是对时间的巨大浪费。每个人都可以与支持我们财富 500 强和企业客户的支持团队成员聊天!👏
I’ve tried many different hosts – LiquidWeb, SoftLayer, WP Engine, Web Synthesis, Rackspace, etc. Out of all of them, Kinsta has been the best in terms of support, speed, and pricing. I’m very impressed with the knowledge and skill of the support team, as well as response times and not having to deal with your typical ‘level 1’ support. Expert fast support, what more can you ask for? WordPress site runs fast with Kinsta, and it was tough to find the necessary expertise with these other companies. Additionally, I love that I can up-scale a server for a week during peak traffic times to handle the load. Amazing.
Richard Li
Blogger, 4k.com
WPMU DEV 在我们不知情的情况下审查了 Kinsta,提出了一个非常公正的意见。以下是 Raelene 对我们支持团队的看法。
我联系支持团队的经历非常棒。我收到了对我所有问题的详细而诚实的回答。当我询问他们的硬件时,我没想到会得到这样的回答:
“我们使用谷歌计算引擎服务器,这确保了高速和自动可扩展性,这意味着我们不会像其他提供商那样被限制在每 VPS 2-6 个 CPU,而是在流量激增时,我们实际上让网站的容器扩展到所需的 CPU 数量,对于负载平衡的客户端,随着我们的系统动态地旋转更多的机器并在流量波动平息时缩小规模,我们的系统可以提供无限数量的 CPU。”
我试着用一些常见的与 WordPress 相关的网站问题来测试他们,得到了所有正确的答案,所以高分!
Kinsta 通过对讲机使用基于票证的支持系统。感觉像是实时聊天,但不是在后台。当我在下午 3 点试图与他们交谈时,我在 5 分钟内得到了回应。我也是凌晨 5 点试的(写的时候正好起的比较早),3 分钟内得到了答案。我可能只是偶然选择了两个低支持率的时间,但仍然令人印象深刻!
Raelene Morey
Prior Managing Editor, WPMU DEV
正如 Raelene 所说,我们在 Kinsta 的第一天就开始使用对讲机,而且效果很好。没有人喜欢老式的售票系统,许多公司现在正在转向更具创新性的解决方案,如对讲机。它为我们提供了一种简单的方法,将聊天和支持票证集成到我们的控制面板中,因此客户知道我们始终只需点击一下鼠标,全年无休(如下所示)。我们在 2021 年的平均响应时间是 1 分 22 秒!
**查看我们使用的其他 SaaS 产品。

Twitter review of Kinsta’s WordPress hosting service.
因此,当选择一个有可靠和知识丰富的支持团队的主机时,托管的 WordPress 主机通常会比其他主机高一个级别,因为它们每天都生活和呼吸着 WordPress。Kinsta 还通过 Sentry 为所有客户端提供高级正常运行时间监控。我们每两分钟检查一次我们托管的所有网站的状态。这相当于每天对你的网站进行 720 次检查。然而,我们也提供工具来监控你的站点健康状况。
这意味着,如果您的网站出现故障,我们将是第一个得到通知的人,我们的支持团队将会立即跟进!为了帮助您诊断与性能相关的问题,我们还支持您自己定制的新遗迹跟踪。
2.针对高性能进行了优化
选择托管 WordPress 主机提供商的第二个原因是,他们的环境已经过微调,可以与 WordPress 协同工作。
如果你选择共享主机或 DIY 路线,它们通常会在更多的准系统机器上,你需要花时间安装软件和优化,以获得与托管 WordPress 主机开箱即用相同的速度。或者,在某些情况下,在共享的主机上,您无法实现所需的速度。
我们在 Twitter 上做了一个投票,在一百多张投票中, 63%的人选择“性能/正常运行时间”作为他们最看重的 WordPress 托管主机的质量。
说到托管 #WordPress 托管,你最看重什么?📋无论您是企业主、开发商、代理商还是博客作者,我们都希望听到您的意见!
——金塔(@金塔)2019 年 2 月 11 日**
用符号链接管理 WordPress 开发
原文:https://kinsta.com/blog/managing-wordpress-development-with-symlinks/
在这篇文章中,我将向你展示一个很好的方法来共享一个插件或主题的单个实例。
什么是符号链接
符号链接是一种特殊的文件,实际上是对另一个文件或文件夹的引用。如果你是一个 Windows 用户,你可能已经使用了桌面快捷方式,这是一种符号链接,因为它们指向你系统中其他地方的文件。
对我们来说,关键是它们也可以指向文件夹。从 WordPress 3.9 开始,插件和主题的符号链接已经被允许,这使得我们可以将它们存储在其他地方,并与我们的安装挂钩。
Symlink 常见使用案例
让我们假设您有一个带有根目录的本地主机设置。每个目录都是一个独立的 WordPress 安装。通常你会在所有的插件中安装你的新插件。在一个系统中发现的错误需要在所有地方进行修改,这使得整个过程变得漫长且容易出错。
使用符号链接,你可以将你的插件和主题保存在一个单独的文件夹中,并且——使用符号链接——你可以将它指向你的每一个安装。每个安装使用相同的文件,使修改和维护变得轻而易举。
如果你在同一个服务器上有多个域,你可以使用同样的技巧。只要您网站的文件占用相同的文件系统,并且您的环境允许符号链接(大多数都允许),您就可以使用这种方法。
我最喜欢用这种方法处理 Github 仓库中的主题和插件。我更喜欢使用 git T1 作为我的 T2 版本控制系统 T3,我的项目有一个将实际的主题/插件放在子目录中的结构。
这意味着我不能在 wp-content 文件夹中原样使用该文件夹。通常,我必须手动将更改复制粘贴到回购协议中,或者更改回购协议的结构。有了符号链接,我就可以用符号链接我需要的文件夹。
创建符号链接
在基于 Windows 和 Linux 的系统(如 OSX)上创建符号链接的过程是相同的,但语法略有不同。创建它们时,您需要指定符号链接和目标的位置。
在我们的例子中,符号链接的位置是主题或插件目录中的一个文件夹。目标将指向包含实际插件/主题文件的目录。
让我们看一个例子,在这个例子中,我们使用一个符号链接来链接到一个单独文件夹中的插件。在这个例子中,我们项目的根目录包含多个 WordPress 安装和一个包含插件和主题的项目目录。
Windows 上的符号链接
让我们假设 web 项目的根目录在 C:/websites 中。你需要打开命令提示符,导航到一个 WordPress 安装程序的插件文件夹,在该文件夹中发出以下命令:
mklink C:\websites\projects\my-plugin-github\my-plugin\trunk my-plugin
这个命令将在你的插件文件夹中创建一个my-plugin文件夹,这个文件夹将指向位于C:\websites\projects\my-plugin-github\my-plugin\trunk的文件夹。当加载插件列表和处理代码时,WordPress 会跟随这个符号链接,让它看起来像你有一个普通的插件。
T3】
OSX 和 Linux 上的符号链接
让我们假设 web 项目的根目录在/Users/danielpataki/websites 中。你需要打开终端,导航到 WordPress 安装程序的插件文件夹,在该文件夹中发出以下命令:
ln -s /Users/danielpataki/websites/projects/my-plugin-github/my-plugin/trunk my-plugin
这个命令将在你的插件文件夹中创建一个my-plugin文件夹,这个文件夹将指向位于/Users/danielpataki/websites/projects/my-plugin-github/my-plugin/trunk的文件夹。当加载插件列表和处理代码时,WordPress 会跟随这个符号链接,让它看起来像你有一个普通的插件。
摘要
你可以根据需要在同一个系统上为你所有的 WordPress 项目重复这个过程。在一天结束时,你所有的安装将使用相同的文件,所以你可以修复一个错误,然后看到它从所有的 WordPress 安装中消失。
我在日常编程中经常使用这种方法。如果你也这样做,并且你有一些锦囊妙计,或者你有更好的做事方法,请在下面的评论中告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
包含您的数据:用 Docker 运行 MariaDB
原文:# t0]https://kinta . com/blog/mariadb-docker/
MariaDB 是一个免费的数据库服务器,它使用结构化查询语言(SQL)提供数据访问。它提供了密码、基于角色的访问控制等安全功能来保护您的数据。
要部署 MariaDB 并向您的用户授予数据访问权限,您需要托管数据库服务器。你可以选择云提供商或使用托管或共享托管服务。
本文将教你如何使用 Docker 容器运行 MariaDB,配置和运行数据库服务器,并将其连接到 WordPress 网站。
Docker 是什么?
Docker 是一个免费的开发工具,它使你能够在一个被称为容器的受控环境中运行应用程序。容器包含应用程序代码、依赖项和运行应用程序的关键系统工具。这允许您在整个软件开发生命周期中交付健壮的应用程序。
通常,容器使用您的操作系统作为宿主。这意味着主机的内核提供了对 CPU、内存和文件系统等资源的访问。因此,这不需要像虚拟机那样的传统虚拟化。使用 Docker 运行 MariaDB 实例有几个优点:
- 它的数字足迹很小,确保了系统资源的有效利用。
- 它是一致的,允许开发人员在生产和测试部署中运行应用程序,只需进行最小的更改。
- 它为资源共享提供了一种灵活的机制。
- 它是可扩展的——您可以在一台主机上运行许多容器。
如何用 Docker 部署 MariaDB
在本节中,您将使用 Docker 创建容器化的环境来运行 MariaDB。您将了解 Docker 提供的容器技术。Docker 适用于大多数版本的 Windows、macOS 和 Linux 发行版。对于本教程,你需要有 Windows 10/11,Ubuntu 20.04,或 macOS X 机器跟随。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
1.安装 Docker
Docker 最好的特性之一是它的可移植性。它使用主机的操作系统,使其成为测试和发布环境的理想选择。本节将教你如何在三个操作系统上安装 Docker。
Ubuntu 20.04
首先更新 Ubuntu 的包列表。
sudo apt-get update
然后,允许通过 HTTPS 访问在线知识库。
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

接下来,添加 Docker 的 GPG 键。
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
现在,添加 Docker 的存储库。
echo deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
然后,更新 Ubuntu 的包以包含 Docker 的库。
sudo apt-get update
最后,安装 Docker 引擎。
sudo apt-get install docker-ce
如果您使用的是不同的 Linux 发行版,如 Debian 或 Fedora,请遵循官方文档中关于在 Linux 中安装 Docker 的说明。
Windows 10/11
Docker 可以在 Windows 10 或 11 上使用 Windows Subsystem for Linux version 2(WSL 2)作为后端。使用以下步骤安装 Docker。
首先,在您的 Windows 系统上启用虚拟机平台特性。这使您能够安装 WSL 2,并在 Windows 机器上安装和运行虚拟化的 Linux 实例。
接下来,安装 WSL 。
然后,访问微软商店下载 Ubuntu 20.04。
最后,下载 Docker Desktop for Windows 。打开下载的文件,启动安装过程。
安装完成后,从任务栏中搜索“Docker 桌面”并打开它。
(注意:您需要使用 PowerShell 作为您的终端来使用 Docker 命令。)
mac os x
Docker 可通过苹果应用商店在 macOS 机器上获得。有两个安装程序可以同时针对英特尔和 T2 的苹果芯片。
首先,从上面的链接之一下载合适的安装程序。然后,双击打开下载的。dmg 文件。
接下来,将 Docker 图标拖放到应用程序文件夹中。
现在,从应用文件夹打开 Docker 应用,按照提示完成配置。
安装过程完成后,双击桌面状态栏中的 Docker 图标将其打开。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
使用默认终端运行 Docker 命令。
2.下载一个 MariaDB 映像
Docker 映像提供了一组命令和配置来创建 Docker 容器。它负责安装运行应用程序所需的一切。可以从 Docker Hub 找到 MariaDB 官方形象。
要从 Docker Hub 下载 MariaDB 的映像,您需要使用docker pull命令:
docker pull mariadb
您还可以通过运行以下命令来查看下载的 Docker 映像列表:
docker images
这是命令输出:

列出码头工人的图片。
3.创建一个容器
容器是一个软件单元,包含运行进程或程序所需的所有代码、依赖项和系统工具。您将使用之前下载的映像来创建一个 MariaDB 容器。
docker create mariadb --name mariadb-wp -i –t
这创建了一个名为mariadb-wp的 MariaDB 容器。–i标志允许交互式会话,而–t选项创建一个伪终端。官方文件提供了所有可用变量的信息。
4.运行、暂停和停止容器
Docker 为开发人员提供了可配置环境的灵活性。在本节中,我们将使用环境变量配置 MariaDB 的容器,以便为您的容器设置特定的系统属性。
MariaDB 有许多变量可以设置,比如数据库名称、密码和数据库用户。有关支持的环境变量的更广泛列表,请参考 MariaDB 的 Docker 文档。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
docker run -d --name mariadb-wp -p 3306:3306 -v '/path/on/host/:/var/lib/mysql' -e "MARIADB_ROOT_PASSWORD=" -e "MARIADB_DATABASE=wordpress" -e "MARIADB_USER=wordpress" -e "MARIADB_PASSWORD=" mariadb
上面的命令配置 MariaDB 的 root 密码、数据库用户和相关密码。然后它在端口 3306 上运行 MariaDB。您可以使用以下命令决定暂停容器应用程序的运行:
docker pause mariadb-wp
最后,您还可以使用以下命令停止在容器内运行的应用程序:
docker stop mariadb-wp
5.将容器化的 MariaDB 连接到一个 WordPress 站点
现在,我们需要将 MariaDB 连接到一个外部 WordPress 网站。你可以在这里了解更多关于在本地创建 WordPress 网站的信息。
在 WordPress 网站的根目录下,在你的代码编辑器中打开wp-config.php文件。找到为数据库定义变量的代码部分并编辑它,如下所示。确保在创建 MariaDB 容器时使用数据库名称、密码和端口号。
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress’);
define('DB_PASSWORD', '');
define('DB_HOST', 'http://localhost:3306’);
接下来,您需要将 WordPress 网站的数据库转储导入容器化的 MariaDB。首先,确保您已经导出了网站的当前数据库。要了解更多,请查看我们的 MySQL 数据库备份教程。
导出数据库后,在容器中安装数据库转储。
docker exec -i mariadb-wp sh -c 'exec mysql -u root -p "$MARIADB_ROOT_PASSWORD" < /some/path/on/your/host/all-databases.sql'
docker exec命令允许开发人员在容器内部运行 shell 命令。我们在上面的命令中使用导出的文件将数据库导入到 MariaDB 中。
6.在你的 WordPress 站点上添加一篇新文章
我们将使用 WordPress admin 帐户创建一个示例帖子来测试这个集成。
首先,登录 WordPress,点击帖子 > 添加新的。如下图所示填写详细信息,然后点击发布。创建帖子后,点击查看帖子查看新添加的帖子。

在 WordPress 编辑器中添加新帖子。
这就是全部了!
7.MariaDB 和 Docker 与 DevKinsta
Kinsta 的免费应用程序 DevKinsta ,可以让开发者高效地创建容器化的 WordPress 站点。该应用程序使用 Docker 来配置 PHP 版本、数据库服务器和 web 服务器。DevKinsta 应用程序支持使用 macOS、Windows 和 Ubuntu/Linux 的开发人员。
首先,在本地机器上下载、安装并启动 DevKinsta。这个应用程序给你三个选项:创建一个新的 WordPress 站点,从 Kinsta 导入一个现有的站点,或者创建一个自定义站点。

DevKinsta 的 new create new site 屏幕。
创建一个新的 WordPress 站点就像填写一个简单的表格并点击创建站点一样简单。

DevKinsta 的新 WordPress 站点创建屏幕。
祝贺你——你现在已经使用 DevKinsta 创建了一个容器化的 WordPress 网站!
摘要
Docker 是一个开发人员友好的工具,用于将运行 MariaDB 等数据库服务器的软件容器化。它的简约环境有助于在不牺牲功能的情况下保持系统资源的效率。
本教程教你如何安装 Docker,设置 MariaDB,并连接 WordPress 站点和容器化的 MariaDB 数据库。另外,你学习了如何使用 DevKinsta 创建一个完全容器化的 WordPress 网站。
WordPress 网站创建及其众多的托管解决方案还有很多值得探索的地方。如果你想知道你的网站管理有多简单,那么 Kinsta 的托管 WordPress 主机可以满足你。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
MariaDB vs MySQL:数据库技术概要
在之前的一篇文章中,我们讲述了 Apache web 服务器的故事,它在互联网崛起中的作用,以及它的市场份额是如何被像 Nginx 这样的竞争对手蚕食的。Apache 是 LAMP 堆栈—Linux+Apache+MySQL+PHP—的一部分,毫不夸张地说,超过一半的互联网都归功于 LAMP。
今天,我们将看看 MariaDB 和 MySQL 之间的一些差异,这两种相似但不同的数据库技术用于支持全球数百万个网站。
MariaDB 与 MySQL 的区别
即使 MariaDB 是 MySQL 的一个分支,这两个数据库管理系统仍然有很大的不同:
- MariaDB 是完全 GPL 许可的,而 MySQL 采用双许可方法。
- 每一种都以不同的方式处理线程池。
- MariaDB 支持许多不同的存储引擎。
- 在许多情况下,MariaDB 提供了改进的性能。
Support
什么是 MySQL
MySQL 是一种关系数据库(RDBMS ),它于 1995 年问世,由迈克尔·蒙蒂·维德纽斯和大卫·阿克斯马克创建。它是在市场被微软和甲骨文的专有(且昂贵)解决方案主导的时候创建的。

Old MySQL page from 1998 (Image source: Archive.org)
MySQL 如今是一个典型的品牌。正如我们今天所知,它在建设互联网的过程中发挥了关键作用。Linux 杂志上的这篇文章揭示了它早期的一些情况。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。
MySQL 早期采用双许可——并使用 GNU GPL 作为其免费版本——为后来的许多其他软件供应商铺平了道路。
用迈克尔·维德纽斯的话说关于双重许可:
…由于 MySQL 是一种基础设施产品,可以很容易地嵌入到其他产品中,我们可以向那些希望将 MySQL 嵌入到他们的产品中,但不想让他们的产品开源的人出售许可证。
作为 LAMP 堆栈的一部分,服务器部署的 web 应用程序通常不嵌入 MySQL 并分发它们的代码。这意味着任何人都可以在自己的网络产品中自由使用该软件。
在公开发布后不到十年, MySQL 就统治了开源关系数据库市场。
Google Trends 显示,全球网络搜索对 MySQL 的兴趣在 2004-2005 年间达到顶峰:

Interest in MySQL over time
使用 MySQL 的一些值得注意的公司包括:
- 脸书,2011 年的一份报告提到了多达“每秒 6000 万次查询,每秒近 400 万次行更改”和 MySQL 处理“几乎每一次用户交互:喜欢、分享、状态更新、提醒、请求。”
- 网飞的其平台的计费部分
- Youtube
- Booking.com
- Airbnb
- 和许多其他人。
促成 MySQL 崛起和被采用的另一个值得一提的因素是 phpMyAdmin。
PhpMyAdmin 是一个基于网络的数据库管理工具,可以追溯到 1998 年,它很早就进入了共享主机提供商的管理控制台,包括 cPanel 。这是一个用 PHP 编写的工具,它使得在 LAMP 服务器上管理 MySQL 变得很容易。导入、导出、编写复杂的查询、删除和创建表、进行复杂的搜索,这些都是 phpMyAdmin 在用户无需使用 Linux 终端的情况下实现的。
WordPress 和 MySQL
MySQL 的流行背后的一个因素无疑是 WordPress,它今天驱动了大约 60%的 CMS 系统或者整个 web 的 34%。
WordPress 是由马特·莫楞威格和迈克·利特尔于 2003 年创建的,作为另一个项目的分支。它是用 PHP 编写的,使用 MySQL 作为它的数据库,当它出现时,它的采用像野火一样迅速。
WordPress 很快成为开源软件概念的同义词,其底层服务器也是如此。DisplayWP 有一张漂亮的图表,列出了每个 WordPress 版本所需的最低 MySQL 版本。
推动 MySQL 被采用的因素之一是其许可的 GPL 方面。因为它与 Linux 兼容,所以它开始默认包含在 Linux 发行版中。今天它默认包含在 Ubuntu 中。
MySQL 和关系数据库模型概述
MySQL 被认为是一个 RDBMS(关系数据库管理系统)。关系数据库模型可以追溯到 20 世纪 70 年代,正如“Codd 的十二条戒律”所概述的。简而言之,这个模型将数据组织到由列和行组成的表中。每一行都由一个键唯一标识(用 SQL 术语来说就是主键)。
这些主键可以被用作其他表用来定义特定行的关系的一种钉。因此,关系数据库表中的外键列将引用另一个表中的主键列,从而定义不同表中行之间的关系。
正如 Essential SQL 所解释的,"主键由一列或多列组成,其中包含的数据用于唯一标识表中的每一行"D* 主键列中的数据必须唯一,不能为空。在关系数据库中,“表只有一个主键,它的定义是强制性的。”
同时,外键是一个表中一列或多列的集合,引用另一个表中的主键。您不需要放置任何特殊的代码、配置或表定义来正式“指定”外键。*

Relational database model in MySQL
这样,使用关系数据库,就有可能以复杂的方式对数据建模,并定义各种数据之间的连接。在上面的简单示例中,我们有两个表,表中的行可以相互关联,例如,每个人拥有一辆汽车。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
我们可以根据我们需要的逻辑来查询这些数据,我们可以根据不同的标准集来过滤结果集,并且我们可以用比我们上面概述的更复杂的方式来构造我们的查询。
由于这个原因,关系数据库(以及一般的数据库)使用特定于领域的语言,其中 SQL(代表结构化查询语言,是 RDBMS 使用的最流行的语言,如果不是唯一的语言的话。
由 Sun 收购
2008 年,MySQL 背后的公司 MySQL AB 被 Sun Microsystems 收购。这家公司开发了 JAVA、Solaris 和 Unix 操作系统,是不同计算机技术的重要贡献者。据商业新闻报道,当时:
“Sun Microsystems,Inc. (NASDAQ:JAVA)今天宣布,它已达成一项最终协议,以大约 10 亿美元的总代价收购 MySQL AB,这是一个开源图标和世界上增长最快的开源数据库之一的开发者”
这将很快证明,这次收购并不足以阻止 Sun 的垮台,但它描绘了一幅 MySQL 在那个时代有多么强大的画面。
神谕
甲骨文公司是迄今为止最大的闭源数据库供应商。
它是 MySQL 的直接竞争对手,实际上是 MySQL 当时成为的 GPL、免费、开源软件模式的对立面。
当甲骨文在 2010 年收购 Sun 和 MySQL 时(以此战胜 IBM),自由/开源软件世界认为这是像《星际迷航》中博格攻击一样“邪恶”的事情。一个用户回忆起 Quora 上的事件:
MySQL 对甲骨文来说是一个严重的威胁——当时甲骨文数据库的收入占总收入的 80%以上(考虑到维护它所需的骨干人员,利润甚至更多)。
MySQL 取得了重大进展——拥有价值数百万美元的网站许可证的财富 50 强大公司正在将数据库(尤其是只读数据库)从 Oracle 转移到 MySQL,因为管理费用要低得多。我知道,我帮助做了一些。
MySQL 社区中的许多人希望增加一些功能,使 Oracle 的免费版本变得过时。MySQL 肯定会走上这条路。工具越来越成熟,拉里害怕了。
因此,甲骨文收购 MySQL 是为了确保其对品牌的控制,分散社区,并从无知的大众手中拯救其旗舰产品。
这是一个合乎逻辑的结论,因为 MySQL 在当时变得如此流行,以至于它可能被视为对甲骨文核心业务的真正威胁。正如 Geekflare 的 Ankush Thakur 所说的, MySQL 变得如此流行,以至于很快,开发人员忘记了 SQL 和 MySQL 是两回事。
在收购发生之前,2009 年底,蒙蒂·维德纽斯(Monty Widenius),他在那一年离开 MySQL 团队建立了自己的 fork 和数据库公司,在他的博客上发表了一个戏剧性的呼吁(我们将引用刚刚开始的话):
帮助拯救 MySQL
我,MySQL 的创建者 Michael "Monty" Widenius,紧急请求您帮助将 MySQL 从 Oracle 的魔掌中拯救出来。如果没有你的直接帮助,甲骨文可能随时会拥有 MySQL。通过写信给欧洲委员会(EC ),您可以支持这项事业,并帮助确保 MySQL 产品作为开源项目的未来发展。
尽管如此,收购还是在一个月后进行了,这让开源社区的许多人感到沮丧。Widenius 已经离开了 Sun ,组建了 Monty Program AB,分叉了 MySQL,为 MariaDB 奠定了基础。同时带着许多 MySQL 开发人员。
直到今天,人们仍在质疑蒙蒂恐惧的合法性。尤其是,由于最糟糕的情况根本没有发生:甲骨文收购 MySQL 并不是为了杀死它。
有些人认为 MySQL 被甲骨文收购仅仅是收购 Sun 的“附带受害者”。回到 2009 年,那些关注数据库市场的人有理由担心。
警告就在那里。MySQL 主要存储引擎的开发者 InnoDB 是一家来自芬兰的公司,2005 年被甲骨文收购。后来,他们被完全并入甲骨文,终止了原来的公司。2006 年,甲骨文收购了 Berkeley DB T1 的创造者,Berkeley DB T1 是另一个不太重要的 T2 BDB T3 存储引擎的提供商。他们在兜圈子。
什么是 MariaDB
2009 年 10 月,MariaDB 在 MySQL 5.1.38 的基础上发布了第一个版本,版本为 5.1.38 Beta。这是一个叉,意为 【确保 MySQL 代码库永远免费】。
在分叉的时候,最普遍的担心是这次收购是一次恶意收购,目标是杀死 MySQL。事实证明,这种担心至少部分是没有根据的。
同样在 2009 年,Monty Program AB 和 Percona,一家提供优质 MySQL 服务的公司,建立了开放数据库联盟。他们的目标是“统一所有与 MySQL 相关的开发和服务,为 MySQL 相关的社区、企业和技术专家面临的碎片化和不确定性提供解决方案。”
想法是“成为 MySQL 开源数据库的行业中心,包括 MySQL 和衍生代码、二进制文件、培训、支持以及 MySQL 社区和合作伙伴生态系统的其他增强功能”
回过头来看:这些步骤可能阻止了著名数据库出现更糟糕的情况。
MariaDB 与 MySQL:兼容性
MariaDB 的 MySQL 分支(以 Widenius 的女儿命名)的全部目的是确保未来对 MySQL 的访问及其进一步发展。这就是为什么 MariaDB 被认为是一个完全的二进制替代物(T1),也就是说,一个“插入式”替代物,使 MySQL 的所有用户能够在他们的系统上互相交换。
MySQL 是一个客户端-服务器应用程序,它的服务器程序 mysqld、它的客户端 mysql、以及辅助程序,如 mysqldump、都与 MariaDB 同名。
用 MariaDB 替换 MySQL 对大多数应用程序和目的来说是一个无缝的过程,尤其是 WordPress。现有的软件,从流行的 CMS 工具到像 phpMyAdmin 这样的应用程序,都是开箱即用的,实际数据可以从一个导出/导入到另一个,而无需任何更改。
在比较数据库技术时,您应该将我们与您当前的主机进行比较。了解为什么我们的平台是一致、可靠的,并且是业界最快的平台之一。免费试用 kin sta。
MariaDB 的声明的目标是保持与 MySQL 的兼容性。据 MariaDB 网站报道,
- 数据和表格定义文件兼容。
- 所有客户端 API 和协议都是兼容的。
- MySQL 和 MariaDB 上的文件名、二进制文件和路径是相同的。
- 端口和插座是一样的。
- 所有 MySQL 连接器——PHP、Perl、Python、Java 和其他——都与 MariaDB 一起工作。
- 就像 MySQL 一样,MySQL 客户端包可以与 MariaDB 互换使用。
每月进行合并,以确保兼容性,并从 Oracle 获得任何新功能和错误修复。
MariaDB vs MySQL:分叉背后的原因
MariaDB 发布背后有多种原因。人们担心甲骨文会为了保护其更有利可图的主要产品而杀死其日益增长的竞争对手,这无疑是最大的担忧之一。用户将会失去一个奇妙的免费产品!
其他原因与确保 MySQL 保持免费和开源有关。如今,MariaDB 的所有功能都是完全 GPL 许可的,而 MySQL 则保持双许可的方式,高级功能在专有的付费许可下许可:
" MySQL 企业版包括最全面的高级功能、管理工具和技术支持,可实现最高水平的 MySQL 可扩展性、安全性、可靠性和正常运行时间。它降低了开发、部署和管理业务关键型 MySQL 应用程序的风险、成本和复杂性。”
如果我们在这里比较两者,MariaDB 有明显的优势,这是由它发布时的 GPL 许可证提供的。由于专有代码库,Oracle 不能合法地利用 MariaDB 代码并将其合并到他们的数据库中。
维德纽斯承诺 : “当甲骨文发布 MySQL 的闭源扩展时,我们也会发布一个开源的。”
社区事务
分叉背后的另一个原因是保持项目的“开放性”,因为它是一个社区驱动的项目(像 WordPress ),它的方向和开发就像它的许可证一样是开放的。如果我们看一下提交日志,很容易得出结论,大部分 MySQL 代码来自内部开发人员。例如,甲骨文的开发者感谢来自社区的偶然和显著的贡献,但这远没有 MariaDB 的开放,也远没有 MySQL 曾经的样子。
客观地看,在撰写本文时,Maria db server repository有超过 186k 个提交、370 多个分支和 200 个贡献者。另一方面,MySQL,有超过 148k 个提交,9 个分支,72 个贡献者。
关于 MariaDB 开发的讨论,它的方向,关于特性的投票,等等。在公开邮件列表上完成:

The “Maria developers” team
除了这个,还有玛丽亚讨论邮件列表。
Maria Captains 是一个值得信赖的开发团队,开发人员可以向他们提交补丁。正如团队在 Launchpad 上的页面所说:
“队长是可信的开发人员,对主 MariaDB 树有写权限。 如果你想在树中添加一个补丁,提交到 maria-developers 列表,一个或多个队长将与你一起审核、批准补丁,并最终将其推送到适当的 MariaDB 树中。”
MariaDB 生动的开发过程已经证明了它比 Oracle 封闭的开发过程更有优势。
2012 年底,MariaDB 基金会成立,负责监督数据库的开发。
分叉后不久,许多最初的 MySQL 开发人员跳槽加入了 MariaDB 项目。像 Red Hat、CentOS、Arch Linux、Debian、OpenSuse、Slackware、Fedora 等 Linux 厂商都改用 MariaDB 作为默认的 RDBMS,还有 BSD 发行版、FreeBSD 和 OpenBSD,而 Ubuntu 包括 MariaDB。整个列表可以在这里找到。
阿里云、腾讯、IBM、微软、Booking.com 等公司成为白金赞助商。
对于 Kinsta 来说,作为最好的应用、数据库、管理 WordPress 托管,有趣的是在中 MariaDB 基金会董事会是来自 Automattic 的人,这是 WordPress 的创造者已经接受 MariaDB 的明显标志。
在拆分后的几年里,MariaDB 有了活跃的发展,以至于由于 2012 年引入的一整套新功能,MariaDB 从 5。*版本号,兼容 MySQL,到 10.0 ,想要体现它已经实现的功能上的飞跃。
由于性能原因,维基媒体基金会在 2013 年宣布将维基百科转换为 MariaDB。同样的事情也发生在谷歌身上,它的用户名单现在包括德意志银行、星展银行、纳斯达克、威瑞森、Craigslist 等。
在 MySQL 用户中,我们有 GitHub、美国海军、NASA、特斯拉、网飞、微信、脸书、Zendesk、Twitter、Zappos、YouTube、Spotify。
自从 MySQL 的第一版发布以来,人们对它的兴趣一直在稳步增长,正如谷歌搜索趋势所显示的:

Interest in MariaDB over time
MariaDB 与 MySQL 的主要区别
虽然 MariaDB 可能一开始就与 MySQL 完全兼容,但我们可以预计他们的道路在未来会更加分歧。

MariaDB vs MySQL
在他的最后一篇博客文章中,Widenius 祝贺 Oracle 在 MySQL 8.0 版本上所做的工作,概述了一些差异和警告,例如:
线程池:与 Apache 相比,类似于 Nginx server 解决的问题,MySQL 为每个客户端连接分配线程,这相当于在 pc 上启动整个程序,效率非常低。 MariaDB 在 5.5 版本中推出了自己的解决方案
隐形 列是 MariaDB 从 10.3.3 开始的专属特性。它们不会在 SELECT *语句中返回结果,也不需要在 INSERT 语句中被赋值。
MariaDB 在其时态数据类型中引入了微秒。
存储引擎: MariaDB 使用的包括 XtraDB、InnoDB、MariaDB ColumnStore、Aria、Archive、Blackhole、Cassandra 存储引擎、Connect、CSV、FederatedX、Memory 存储引擎、Merge、Mroonga、MyISAM、MyRocks、QQGraph、Sequence 存储引擎、SphinxSE、Spider、TokuDB 。 ColumnsStore 在性能方面很有意思,因为它使线性伸缩处理数 Pb 的数据成为可能。在他们的博客上有更多关于它的信息。
MySQL 存储引擎有 InnoDB ,MyISAM,Memory,CSV,Archive,Blackhole,Merge,Federated,Example 。
数据库视图是一个特性,其中 MariaDB 通过只查询必要的表引入了显著的优化。
MySQL 引入的一些功能有 JSON 原生数据类型,MySQL 8.0版本中的 MySQL Shell 它允许 javascript 和 python 脚本——并且不与 MariaDB、基于 SHA-256 的认证插件一起工作,提高了 mysql_native_password 的安全性。
在这里,您可以找到 MariaDB 和 MySQL 之间差异的完整列表,以及前者与后者相比的优势。
摘要
MySQL 隶属于世界上最大的商业数据库供应商。这么多全职工程师夜以继日地开发优质的新功能,我们已经有了一些分歧点。另一方面,MariaDB 通常会在溢价增加时赶上,但这并不总是立竿见影的,也没有保证。
话虽如此,但在许多情况下,MariaDB 提供了改进的性能。除此之外,更灵活的补丁和更新、更稳定的开源未来以及更多的乐观,您将会看到为什么在 Kinsta 我们不仅是粉丝,而且还使用 MariaDB 作为我们的性能驱动的服务器堆栈的一部分。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
MariaDB 与 PostgreSQL: 14 个关键差异
数据库本质上是任何软件的支柱。随着几个数据库出现在市场上,以及开源数据库越来越受欢迎,许多开发者和企业都有一个共同的问题:如何选择正确的数据库?
在本文中,我们将讨论两个最流行的开源数据库——Maria db 和 PostgreSQL。
你知道这两个流行的开源数据库相比如何吗?🤔潜入这里⬇️ 点击发布推文
虽然 PostgreSQL 已经存在了 20 年,并且在其稳定性方面非常出色,但 MariaDB 也证明了自己是一个伟大的数据库系统,它是从最常用的数据库系统 MySQL 中分出来的。MariaDB 和 PostgreSQL 都支持大量的特性,比如复制、良好的安全性,以及更多免费的特性。
如果你在 MariaDB 和 PostgreSQL 之间左右为难,不要担心。我们将探索数据库的各种特性,以及它们的使用情形,最重要的是它们的区别。
让我们开始吧!
什么是 MariaDB?

MariaDB logo. (Image source: MariaDB)
MariaDB 是一个开源的、高度可扩展的数据库,由 MySQL 的创始人在 2009 年被 Oracle 收购后创建。虽然它与 MySQL 很相似,但自诞生以来,它已经有了很大的发展。
首先,MariaDB 在大多数情况下提供了改进的性能,并且是完全 GPL 许可的。您可以使用开源社区版本,也可以请求企业版报价,如果您要在大规模平台或云上实现您的软件,您可能需要考虑这一点。但是,所有功能都可以在开源包中获得,而不是企业版独有的。
除了作为 MySQL 的高度稳定的替代产品之外,MariaDB 还支持 JSON 和混合数据格式,允许轻松地存储、检索和操作数据。MariaDB 总线和路线图的文档也可以免费访问。
PostgreSQL 是什么?

PostgreSQL. (Image source: Uberconf)
PostgreSQL 是一个高级的关系数据库系统,自 1997 年就出现了。它支持符合标准的事务隔离形式,包括序列化、读取、提交和可重复读取。这些方法提供了完全的 ACID 遵从性,从而使 PostgreSQL 成为一个高度稳定的数据库,几乎可以做任何事情——包括对 NoSQL、React 和 Redis 等的强大扩展支持。
它得到了开源社区 20 多年发展的支持,并经历了频繁的更新,包括不断添加新的文档。该文档不仅可以帮助排除故障或跟踪问题,而且也是开发或改进 PostgreSQL 特性以用于未来文档的很好的参考工具。此外,PostgreSQL 是一个非常安全可靠的数据库,因为所有的错误修复都经过了几轮严格的测试。
MariaDB 的主要特性
MariaDB 有几个特性使它成为一个伟大的数据库,包括它的大量存储引擎选择、线程池、SQL 兼容性和并行查询执行。
以下是亮点:
- 存储引擎:让 MariaDB 脱颖而出的特性之一是可供选择的存储引擎种类繁多。PBXT、XtraDB、Maria 和 FederatedX 是几种可行的发动机选项,可以根据您的要求进行定制。它还包含 InnoDB,这是一个通用存储引擎,以平衡高可靠性和高性能而闻名。
- 线程池:线程池是代表应用程序有效执行异步回调的工作线程的集合。当发出请求时,MariaDB 可以简单地获得一个已经在池中的先前创建的线程。这节省了创建线程的时间,并为线程周期开销提供了一个解决方案,允许查询运行得更快并返回更快的结果。
- SQL 兼容性: MariaDB 通过客户端程序(如 mysqldump、mysqladmin)和插件(如审计插件)为大多数 SQL 语句、变量、定义和函数提供支持。开发人员还可以利用 MariaDB 中的 JSON 函数、窗口函数和公共表表达式(cte)。
- 虚拟列:对虚拟列的支持是 MariaDB 的主要特性之一,可以用来执行数据库级别的计算。当多个 app 访问一列时,用户不必在每个 app 中单独编写计算;数据库代表他们做这件事。
- 并行查询执行:从 10.0 版本开始,您可以同时执行多个查询而不会降低性能,从而加快任务执行速度。
PostgreSQL 的主要特性
除了开源之外,PostgreSQL 还拥有各种各样的特性。分区、负载平衡和连接池都与 PostgreSQL 一起工作,使它比同时代的产品有相当大的优势。
以下是 PostgreSQL 的一些显著特性:
- 对 JSON 数据的支持:查询和存储 JSON 的能力允许 PostgreSQL 运行 NoSQL 工作负载。如果您正在设计一个数据库来存储来自多个传感器的数据,并且您不确定您将需要哪些特定的列来支持传感器,那么您可以构建一个表,使其中一个列遵循 JSON 格式来存储不断变化的或非结构化的数据。
- 强大的扩展: PostgreSQL 拥有令人印象深刻的特性集,包括时间点恢复、多版本并发控制(MVCC)、表空间、粒度访问控制、预写日志和在线/热备份。PostgreSQL 在区分大小写、排序和格式方面也是区域设置敏感的。它在可管理的数据量和可容纳的并发用户数量方面都具有高度的可扩展性。
- 数据更新:多种形式的联合与复制相结合,为几乎任何类型的数据系统提供了推和拉技术。这些可以在不同的配置中组合,以桥接数据库存储解决方案,而不需要 ELT/ETL 处理包。数据根本不会从源系统中移出,这意味着数据总是最新的。
- 测试驱动开发: PostgreSQL 遵循测试驱动开发,每一个 bug 都会遇到一次测试,编写代码来满足测试。这些测试是集成的,这样 bug 就不会在 PostgreSQL 的未来版本中再次出现。PostgreSQL 的新更新只有在所有回归测试用例通过后才会发布。
MariaDB 用例
随着 MariaDB 越来越受欢迎,它已经被证明是一个出色而可靠的数据库系统。它被用作三星、诺基亚甚至沃尔格林的后台数据库系统!
更何况可以利用现有的几个软件从 MySQL 迁移到 MariaDB,比如 phpMyAdmin 和 WordPress ,世界上最流行的内容管理系统(CMS) 。这些软件允许您进一步扩展已经非常灵活的数据库解决方案。
以下是 MariaDB 的一些优秀应用:
- 智能事务: MariaDB Enterprise 通过将针对快速事务优化的行存储与针对快速分析优化的列存储相结合,支持智能事务(即混合事务/分析处理或 HTAP)。借助智能交易,开发人员可以通过实时分析丰富 web 和移动应用程序,这使您能够通过引人注目的数据创造更具洞察力的客户体验。
- 分析:使用列存储和大规模并行处理(MPP)可以将 MariaDB 部署为数据仓库或分析数据库,以便在不创建索引的情况下,使用标准 SQL(包括连接)对数千亿行执行交互式即席查询。此外,MariaDB Enterprise 实现了云原生存储架构,可以选择使用亚马逊 S3 兼容对象存储来降低成本和利用无限的容量。用户可以分析大量数据,而不必为每个潜在的查询创建索引。
PostgreSQL 用例
由于 PostgreSQL 的多功能性,像优步、网飞和 Instagram 这样的巨头在后端使用 PostgreSQL 就不足为奇了。以下是数据库的一些重要使用案例:
- 地理空间数据库:当与 PostGIS 扩展一起使用时,PostgreSQL 支持地理对象,并可用作地理信息系统(GIS)和基于位置的服务的地理空间数据存储。这在基于位置的应用程序的开发中是非常宝贵的。
- LAPP 栈的后端数据库:作为 LAMP 栈的替代,LAPP 代表 Linux、Apache、PostgreSQL 和 PHP(或者 Python 和 Perl)。PostgreSQL 是 LAPP 堆栈的一部分,用作运行动态应用程序和网站的强大后端数据库。
- 通用 OLTP 数据库:许多大型企业和初创公司使用 PostgreSQL 作为主要的数据存储,以支持其互联网规模的应用程序、产品和解决方案。
MariaDB 与 PostgreSQL:势均力敌的比较
现在是时候让这两种数据库解决方案相互竞争了。让我们探索一下 MariaDB 如何与 PostgreSQL 相抗衡,反之亦然。
架构/文档模型
MariaDB 和 PostgreSQL 都将关系数据库管理系统(DBMs)作为它们的主要数据库模型。
他们的辅助数据库模型是文档存储;然而,只有 MariaDB 还可以合并图形 DBMs。
MariaDB 和 PostgreSQL 都采用客户机/服务器体系结构模型,其中服务器负责管理数据库文件,接受客户机应用程序到数据库的连接,并代表客户机执行数据库操作。客户端或前端应用程序通常执行数据库操作。
展开性
MariaDB 和 PostgreSQL 都包含用于定制的可扩展架构。需要某些额外功能的用户可以使用共享库来实现,这允许开发人员根据自己的喜好定制代码。
MariaDB 支持许多不同的 SQL 模式、分区、数据库备份和恢复过程、服务器监控和日志记录。你甚至可以创建你的函数、数据类型、操作符、窗口函数或者其他任何东西。没有看到您喜欢的功能?由于它的开源许可,您可以从源代码本身创建和定制它。
尽管 PostgreSQL 提供了对 JSON 和 XML 的原生支持,但它很容易扩展。因此,如果您想构建一个 web 服务,并使用 PostgreSQL 作为后端数据库系统,或者利用 Python 地图支持您的业务用例,您可以放心大胆地去做。
PostgreSQL 如此具有可扩展性的原因是其目录驱动的操作。PostgreSQL 保留关于列和表的所有信息,以及关于数据类型、函数和访问方法的详细信息。
指数
MariaDB 中的索引主要有四种,分别是:主键(唯一且不为空);唯一索引(唯一的,可以为空);普通索引(不一定是唯一的);和全文索引(用于全文搜索)。
PostgreSQL 提供了更广泛的唯一索引类型来高效地匹配任何查询工作负载,例如 B 树、hash、GiST、SP-Gist、GIN 和 BRIN。PostgreSQL 进一步支持函数驱动的索引、部分索引和不互斥的覆盖索引,这意味着您也可以同时使用它们。
此外,MariaDB 和 PostgreSQL 都支持全文索引和搜索。
语言和句法
MariaDB 和 PostgreSQL 都支持各种 SQL 语句、规则、函数和过程,以及各种数据库连接器,包括 C、C++、Perl、PHP 和 Python 等等。
PostgreSQL 还可以实现通用表表达式(CTE)、语言控制结构(if、for、case 等)。),以及结构化错误处理。
分割
MariaDB 通过 Galera 集群/Spider 存储引擎的分片以及表的水平分区来提供分区支持。这有助于提高 MariaDB 的查询性能。使用 MariaDB,您还可以将经常访问的最近数据与很少引用的历史数据存储在单独的分区中,从而提高访问速度。
另一方面,PostgreSQL 不支持这些。尽管我们对未来的发展充满希望,但是 PostgreSQL 中还没有表分区的选项。
速度
数据库是你网站的核心,由于服务器经常访问它,你的数据库的速度反映了你的 WordPress 网站的速度。一个快速的网站加上快速的加载时间可以帮助提高您的访问者数量和网站性能,从而进一步支持您的业务。
各种插件可以帮助你去掉多余的东西,优化,修复,整理你的网站,但是建议你从一个很棒的主机开始完善你的数据库。例如,Kinsta 提供了备份和每周自动数据库优化。因此,有了像 Kinsta 这样的主机提供商,你就不需要大部分的数据库插件了。
最重要的是,借助 Kinsta 的托管,您不再需要审查优化或检查备份。
PostgreSQL 具有提供更快读写速度的能力,这使得它成为在业务运营中周转时间和数据访问速度起主要作用的情况下的推荐选择。当数据库要处理大量数据时,PostgreSQL 也是必不可少的选择。
另一方面,MariaDB 拥有一个高级线程池,能够运行得更快,支持多达 200,000+个连接,并配有 12 个新的存储引擎,这使它能够在查询处理速度方面与 PostgreSQL 并驾齐驱。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
监控和管理工具
由于数据库是关键的软件组件,因此有大量的工具可供选择,用于监控、管理、管理和故障排除目的。
基本管理工具
以下命令行应用程序非常适合基本管理任务:
- psql (PostgreSQL)
- mysql (MariaDB,mysql)
由于这些工具内置于它们各自的服务器中,所以从安装开始, psql 和 mysql 就一直可用。 psql 和 mysql 都有一个命令历史,允许你重新运行以前执行的命令和查询,以及一组内置命令,可以方便与数据库的交互。例如, psql 使用 \d 命令列出所有数据库,而 mysql 使用 status 命令提取服务器正常运行时间和版本等信息。
MariaDB 和 PostgreSQL 还提供了以下官方绘图工具:
- pgAdmin4 (PostgreSQL)
- MySQL 工作台(MariaDB,MySQL)
绩效仪表板工具
除了前面提到的命令行和图形应用程序,MariaDB 和 PostgreSQL 还提供了其他更高度专业化的工具。一个这样的工具是 PgHero,由 PostgreSQL 创建,作为一个全面的性能仪表板。

PGHero dashboard. (Image source: PgHero)
在 MariaDB 中,您可以利用 MySQL Tuner 达到与 PgHero 相同的目的。MySQL Tuner 是一个 Perl 脚本,它可以分析您的数据库统计数据和设置,以生成配置建议。
日志解析工具
您可以使用像 MariaDB 的 pt-query-digest 这样的日志解析工具来帮助您查明缓慢的查询。Pt-query-digest 可以分析您的日志并运行测试查询来识别最慢的查询,以便您可以相应地优化它们。
PostgreSQL 为类似的日志解析目的提供了 pgBadger。这是一个快速简单的工具来分析您的 SQL 流量,并生成 HTML5 报告完成动态图表。
表演
MariaDB 被认为适合于较小的数据库,并且能够在内存中存储数据,这是 PostgreSQL 所不提供的功能。另一方面,PostgreSQL 利用内部缓存和服务器的页面缓存来提取频繁访问的数据,这使得它的性能优于 MariaDB 的查询缓存。
PostgreSQL 还提供了各种高级特性,如部分索引和物化视图,以优化数据库性能。使用实例化视图,您可以预先计算昂贵的聚合和连接操作,并将结果存储在数据库的表中,从而提高频繁触发的复杂查询的性能,并访问大量数据以获得结果。
部分索引是在查询结果上生成的,而不是在表的每一行上生成的。在大多数情况下,基于高活动性/新近性,查询只涉及表中行的子集。如果为来自那些被频繁访问的行的查询结果生成部分索引,可以大大加快查询的执行速度。
当您有一个包含各种巨大表的大型数据集,需要频繁地连接这些表以生成聚合时,这些功能就很方便了。然而,值得注意的是,这些特性在 MariaDB 中是不存在的。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
价格
对于 MariaDB,许可成本约为每年 4,000 美元。实际价格根据你发帖的数量和你选择的软件而定。MariaDB 还提供了一个自托管的开源选项,非常适合希望熟悉 MariaDB 广阔世界的初学者。
PostgreSQL 是一个内部部署的开源平台,因其易操作性、多功能性和可伸缩性而被世界各地的开发人员广泛利用。但是,如果您觉得您可能需要频繁的支持,您可以尝试 PostgreSQL 的商业版本,也称为 EnterpriseDB。
数据类型化
在数据类型方面,MariaDB 比 PostgreSQL 更灵活。它可以自动更正数据以匹配目标数据类型,接受数据并触发警报。因此,MariaDB 是需要对数据输入中的差异做出直观反应的应用程序的首选。
另一方面,PostgreSQL 的类型更加严格,这意味着如果传入数据与目标数据类型稍有不同,PostgreSQL 将抛出错误,并且不允许插入。PostgreSQL 倾向于严格的数据完整性。
复制和集群
对于延迟复制,您可以定义复制辅助节点落后于主节点的时间(以秒为单位)。这是为了确保次映像反映主映像在最近某个时间的状态。
MariaDB 支持异步多源复制和主从复制。因此,可以通过 MariaDB Galera 集群执行半同步复制、多主集群、延迟复制和并行复制。
另一方面,PostgreSQL 提供了主-从复制以及级联复制、流复制和同步复制。通过利用最新的 BDR 包,您甚至可以在 PostgreSQL 中执行双向复制。
同步复制的 Quorum commit 通过允许您指定任何给定数量的备用数据库回复后每次提交进行的时间,而不考虑它们的顺序,在同步复制中提供了更大的灵活性。这允许您持续部署和更新数据库。
使用逻辑复制,您可以将每个表或每个数据库级别的修改发送到不同的 PostgreSQL 数据库,这允许您微调如何将数据复制到数据库集群。
安全性
MariaDB 频繁发布安全补丁,体现了安全对于 MariaDB 社区的重要性。
类似地,PostgreSQL 全球开发组(PGDG)发布了一个广泛的活动常见暴露和漏洞列表,由一个大型活跃的社区定期解决。
重要的
出于安全和性能的原因,你必须用最新的版本和补丁保持开源软件最新。
大小
与 PostgreSQL 相比,MariaDB 的大小要小得多,这适用于各种操作系统版本。MariaDB 也明显更轻,如果内存分配不足,它是首选。
支持和社区
MariaDB 通过工程师提供支持,这些工程师通常是软件开发人员和数据库管理员,他们也是 MySQL 和 MariaDB 的技术专家。对于拥有企业级订阅的用户,MariaDB corporation 提供了广泛的 24/7/365 支持。
也可以通过 MariaDB 知识库获得支持,在那里您可以筛选教程、文档、教程和其他有用的资源。
MariaDB 依赖并致力于一个活跃的社区,包括开发人员、贡献者和非开发人员团体。您将找到不同的方式通过社交媒体、邮件列表、活动和会议与社区成员互动,并且鼓励您自己帮助调试、记录和开发 MariaDB。
PostgreSQL 也拥有一个活跃而广泛的社区,它通过用户组、文档、邮件列表和补充资源为用户提供支持,包括一个 IRC 通道,用户可以方便地向有知识和活跃的 PostgreSQL 社区成员提出问题。还有几个 PostgreSQL 的国际站点,因此您可以在您的国家和/或语言中找到社区参与机会和资源。
在 PostgreSQL 社区页面上,有各种参与方式,包括邮件列表、学习机会和职位发布。开发人员页面为您提供了了解更多信息或成为 PostgreSQL 项目活跃开发人员的途径。补充的社区资源,在那里你可以找到其他交流和参与的方式,包括 Planet PostgreSQL 和 PostgreSQL Wiki 。
挑战
尽管 MariaDB 已经成为市场上最安全、最易于使用的数据库解决方案之一,但与任何解决方案一样,您可能最终还是会遇到困难。
以下是利用 MariaDB 作为业务运营数据库的一些挑战:
- 缺少调试函数的工具: MariaDB 不提供调试函数和程序的专用工具。这些 MariaDB 过程的稳定性,包括用于扩展数据库在线事务的稳定性,远非完美。
- 缺少专用的复制服务器:拥有专用的复制服务器将有助于简化用户的复制过程。您需要设计一个定制的解决方案,用于在实时环境中镜像您的数据库,以便在生产环境中写入的记录可以跨服务器复制。如果 MariaDB 为其用户简化主-主复制,它也可以得到很大的改进,但这还没有发生。
作为 MariaDB 的竞争者,PostgreSQL 已经为自己赢得了一个完整的开源数据库解决方案的名字,并在激烈的竞争环境中继续这样做。尽管 PostgreSQL 提供了各种优势,但是它在一些方面还是有不足。
以下是您在使用 PostgreSQL 时可能会面临的一些挑战:
- 时间:确保无缝执行 PostgreSQL 迁移或开发项目可能会比预期花费更长的时间。意外的问题通常需要额外的研究,这可能会延迟进度。因此,从一开始就必须在项目进度中留出时间进行持续研究。
- 成本:一个常见的误解是,作为开源的 PostgreSQL 解决方案是 100%免费的。然而,尽管安装、下载和使用该解决方案是免费的,但几乎总是会有与支持、迁移和维护相关的成本,而且这些成本不容忽视。
- 部署规模:对于拥有小型数据库的小型企业来说,切换到 PostgreSQL 可能很容易,但是大型企业和中型企业可能会面临迁移挑战,甚至最终需要迁移服务或支持供应商的帮助。
- 内部专业知识:维护任何数据库都需要专业知识,PostgreSQL 也不例外。公司需要比较雇佣内部专家和让内部团队自下而上学习 PostgreSQL 的相关成本。
MariaDB vs PostgreSQL:你该选哪个?
MariaDB 通过将数据转换为正确的类型,在更新和插入时提供了数据类型的灵活性。这在速度和资源分配方面是有益的,但是需要更加注意确保数据符合模式。
MariaDB 对主-主复制的支持对于需要低延迟和高可用性的应用程序来说也很方便。如果这听起来像是你在下一个项目中需要的,那么 MariaDB 将是更明智的选择。
PostgreSQL 是一个经过时间考验的强大的关系数据库系统,它一直是小型企业、企业和个人的重要开源选择。它特别适合依赖低成本维护和部署,但即使在高容量环境中也需要稳定性、可靠性和响应能力的公司和应用程序。
感觉在 MariaDB 和 PostgreSQL 之间被撕裂?不要再看了👀 点击推文
摘要
在本文中,我们已经详细讨论了 MariaDB vs PostgreSQL。这些因素包括关键因素,如速度、性能、语法、可扩展性、安全性、支持和社区、索引和架构,以帮助您就最适合您独特业务需求的数据库工具做出明智的决策。
如你所见,MariaDB 和 PostgreSQL 各有优缺点。最终,在 MariaDB 和 PostgreSQL 之间做出选择需要仔细考虑您的系统需求,并充分理解给定的数据库如何满足这些需求。
在 MariaDB 和 PostgreSQL 之间,你计划在你的下一个项目中使用哪个,为什么?我们很想听听你的想法!请在下面的评论区分享它们。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
WordPress 超级用户的 5 个最佳降价编辑器
在将文本导入网站时,使用第三方编辑器编写 WordPress 内容可能会有问题。此外,传统的文本文件格式不能很好地转换成 HTML。这就是 markdown 编辑器的用武之地!
使用正确的 markdown 编辑器,您可以编写无缝转换为 HTML 的内容,而无需处理任何复杂的代码。你有很多很棒的在线减价编辑器可供选择,包括免费选项。如果你不想使用其他软件,你甚至可以使用 WordPress markdown 编辑器。
在本文中,我们将探讨什么是 markdown 编辑器及其优势。我们还将向您介绍适用于多种操作系统的最佳降价编辑器。这些包括在线和离线选项,以及一个 WordPress 选项。
我们走吧!
查看我们的视频指南给最好的降价编辑
什么是降价编辑器?
Markdown 是一种文本格式语法,使您能够编写可以轻松转换为 HTML 的内容。你在网上看到的所有内容(包括这篇文章)都是 HTML 格式的。如果您使用浏览器的检查工具来检查任何页面的代码,您会看到它的文本出现在 HTML 中。
例如,假设您想要加粗一行文本。在 HTML 中要做到这一点,你需要使用**<b>**标签:
<b>This is an example of bold text in HTML</b>
markdown 语法中的确切文本如下所示:
**This is an example of bold text in HTML**
Markdown 语法包括翻译成你需要的每一个 HTML 组件的元素。段落、标题、列表、链接和任何你能想到的东西都有特定的语法元素。下面是一个降价文本文档的快速示例:

一个简单的降价例子。
现在,当您将该语法转换为 HTML 时会发生什么,任何 markdown 编辑器都应该能够做到这一点:

将 markdown 转换成 HTML。
用 markdown 编写比用 HTML 容易得多。markdown 编辑器是一个软件,它可以识别这种类型的语法,并将其转换为其他文件类型,包括(但不限于)HTML。
使用降价编辑器的好处
使用 markdown 的主要好处是可移植性。任何高质量的降价编辑者都能够获得降价文档()。md 或。mkd )并将其转换成其他格式,包括:
- 超文本标记语言
- 便携文档格式
- 纯文本
- Epub
- Docx
Markdown 会转换成任何一种文件类型,你最终会得到一个格式完美的文档。如果你试图将一个谷歌文档 文件转换成 HTML 或 PDF,你通常会以一个格式混乱而告终,这将需要时间和精力来修复(取决于文档的复杂性)。
使用 markdown 的另一个好处是语法很简单。你已经看到了一些 markdown 语法的例子,你可以在 Markdown Guide 上查看对它的完整介绍。
这种简单程度是至关重要的,因为这意味着使用 markdown 语法的学习曲线是最小的。此外,markdown 在开发人员中很受欢迎,它是许多平台的标准语言,包括 GitHub 。
如果你能轻松地编写 markdown,你就能创建无缝转换成你可能需要的任何文件格式的内容。对于 WordPress,你可以把 markdown 文件转换成 HTML,然后在几分钟内把 HTML 导入你的网站。你所需要的只是一个 markdown 编辑器。
2022 年 5 个最佳降价编辑
在这篇综述中,我们将为每个操作系统(OS)和几个在线选项提供降价编辑器。我们将讨论哪种编辑器最适合您的特定需求,并且我们将概述您需要知道的任何定价信息。
请记住,如果你习惯使用 markdown,你可以使用几乎任何文本或代码编辑器作为你的主要工具。然而,专用的 markdown 编辑器通常包括许多功能,可以使您的工作更容易。我们将在这一部分讨论其中的一些特性。
1.标记

马克降价编辑。
Markdown 编辑器不需要打包大量的功能来提供帮助。如果你是极简主义者文本编辑器的粉丝,你会喜欢马克。
Mark 是一个在线降价编辑器,不提供任何复杂的功能。在左边,你有你的 markdown 编辑器,在屏幕的右边,你可以预览文本在浏览器中的样子。编辑器也有一个黑暗模式选项。
您可以将文件保存为 HTML 格式,或者手动复制降价代码并将其粘贴到您的网站上。WordPress 不能识别现成的 markdown 语法,但是在我们检查了更多的编辑器后,我们将向您展示如何解决这个问题。
价格:免费
2.你这个白痴

The Typora markdown editor。
Typora 是一个用户友好的 markdown 编辑器,它可以自动获取你的语法,并显示你的内容在导出时的样子。您可以在“代码编辑器”和“可视化预览”模式之间来回切换,从而轻松发现和修复语法中的错误。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
使用 Typora,您可以将 markdown 文档导出为多种文件格式,包括 Word 文档、HTML、pdf 和纯文本文件。该软件还允许你使用键盘快捷键添加降价元素,使这个过程更快。
最后,Typora 包括一个主题系统,如果你经常使用该软件,这是很有帮助的。有了主题,你就可以调整 Typora 的风格,这样在写内容的时候感觉更舒服。
价格: Typora 仍处于测试阶段,在正式推出之前将保持免费。
3.起草

草稿减价编辑。
Draft 是一款在线 markdown 编辑器,因其协作工具而脱颖而出。使用草稿,您可以用 markdown 语法或 HTML 编写文档并共享它们,以便其他用户可以编辑这些文件。
当您使用草稿进行协作时,该平台会保存您的所有文档版本,并使您能够发现不同草稿之间的更改。您还可以从多个云存储平台将图像导入您的文档,或者从您的计算机上传图像。
草稿还允许您向文档添加注释和脚注,并创建特定于文件的待办事项列表。有了待办事项列表,您可以在完成任务时进行核对,您的其他合作者也可以这样做。
一旦您准备好导出文稿,草稿会提供多个选项。您可以将 markdown 文件导出为 Word 或 Google 文档、pdf、HTML 文件,或者保持 markdown 格式。
价格:免费,但需要注册账户才能使用汇票。
4.迪林杰

The Dillinger markdown 编辑。
如果你喜欢使用 Mark 的简单性,但你希望它有更多的功能,你会喜欢上 Dillinger 。这个 live markdown 编辑器向您显示文本的预览,它会随着您的书写而更新。此外,您可以将预览切换到 HTML 模式,这样您就可以看到您的降价文本是如何转换成 HTML 代码的。
Dillinger 使你能够将你的减价文件导出为多种格式,包括 HTML 和 PDF。您还可以在导出之前预览那些格式为的降价文档,这可以节省您很多时间。
需要一个给你带来竞争优势的托管解决方案吗?Kinsta 为您提供了令人难以置信的速度、一流的安全性和自动伸缩功能。查看我们的计划
有了 Dillinger,你可以将你的 markdown 文件直接保存到多个云存储平台和 GitHub(这使得这个工具非常适合编写文档)。您还可以将这些平台上的文件导入到 Dillinger,或者从您的计算机上传标记文档。
价格:免费
5.iA 作家

iA 作家 markdown 编辑。
如果你正在寻找一个可以在 Android 和 iOS 上工作的 markdown 编辑器,这样你就可以从你的移动设备上创建内容,你会爱上 iA Writer。该软件还提供 Windows 和 macOS 版本,在所有平台上都具有相同的整洁界面。
iA Writer 使用颜色突出显示您的 markdown 语法,从而更容易跟踪每个元素。该软件还包括一个内置的风格检查器,可以帮助你消除写作中的冗余,你可以将它与专注模式配对,以避免分心。
该软件可以让你预览 HTML 或 PDF 格式的降价文件,并将其导出。您还可以将元数据添加到您的文档中,这在您处理 web 内容时尤其有用。
价格: 许可价格因您使用的操作系统而异。
你的 WordPress Markdown 编辑器有哪些选项?
WordPress 使你能够使用简单的可视化编辑器或 HTML 来编写内容。然而,你不能把 markdown 语法导入 WordPress,因为 CMS 不能解析它。
下面是一个简单的例子,说明如果我们将 markdown 文本添加到代码编辑器中会发生什么:

在 WordPress 中使用 markdown。
WordPress 将获取你的 markdown 代码,并按原样呈现。这意味着如果你使用 markdown,你需要将你的文件导出到 HTML,复制代码,并粘贴到 WordPress 页面或文章的代码编辑器中。
或者,有一个插件我们可以推荐给 WordPress 增加 markdown 支持,那就是 Jetpack 。Jetpack 为 WordPress 增加了数量惊人的功能,从增加安全性到自动备份和媒体优化。
如果你想了解如何设置和配置 Jetpack,我们有详细的指南来指导你。要启用 Jetpack 的 WordPress markdown 编辑器,你需要激活插件并导航到 Jetpack > 设置 > 编写。
查找名为的组成的部分,并启用设置说以纯文本减价语法写文章或页面:

在 WordPress 中启用 markdown 语法。
启用 markdown 语法设置后,打开块编辑器,您将看到您可以访问一个新的 Markdown 块:

使用 Jetpack Markdown block。
使用这个代码块,您将能够用 markdown 语法编写代码。如果你点击预览标签,你可以看到你的语法在前端是什么样子。
如果你想访问一个内置的 WordPress markdown 编辑器,Jetpack 是你最好的选择。唯一的缺点是你需要用一个WordPress.com账户来连接这个插件。然而,在 Jetpack 的免费版本中可以使用 markdown 功能,所以你不需要支付任何费用就可以开始使用 WordPress 中的语法。
摘要
使用 markdown 语法可以使您将文件导出为 HTML 或其他标准格式(如 Word 文档和 pdf)的工作变得更加容易。如果你使用 Jetpack 插件,你将可以访问 WordPress markdown 编辑器,不用离开你的网站就可以使用。
或者,你可以使用一个成熟的 markdown 编辑器,将你的文件导出为 HTML,然后将代码上传到 WordPress。我们在这里分享了我们的五个最佳选择。
开始写作!
你有使用其他 markdown 编辑器的经验吗?请在下面的评论中告诉我们!
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
Matomo vs Google Analytics:探索和比较两个平台
你已经为你的网站投入了大量的工作,并且需要了解用户如何与它互动。
这就是为什么数据分析对现代网络企业的成功如此重要。目前网站分析领域最重要的名字是 Google Analytics ,但它远不是镇上唯一的名字。有几个谷歌分析的替代品,比如 Matomo。
这两种服务都被广泛采用并且易于使用。他们还可以很容易地与 WordPress 整合,WordPress 是世界上最受欢迎的 CMS。但是 Google Analytics 和 Matomo 哪个服务更好呢?这两种观点肯定都有论据支持。这些优质服务之所以受欢迎是有原因的。
我们在这里不是要告诉你这两种服务哪个更好,因为在这种情况下更好是主观的。不同的企业有不同的需求,虽然谷歌分析可能对一家公司更有吸引力,但 Matomo 的功能可能会非常适合另一家公司。
相反,我们将重点比较这两种服务,以便您做出明智的决定。
在本文中,我们将探索 Matomo 和 Google Analytics,在几个关键领域对它们进行比较,以帮助您决定哪个是更好的分析平台来满足您的需求。
马托莫是什么?
Matomo 是一个网络分析平台,前身是 Piwik Analytics。Piwik 始于 2007 年,但在 2018 年更名为 Matomo。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。

Matomo
Matomo 受欢迎的一个原因是它是一个开源分析平台。这意味着它由用户社区维护和更新。这确保了 Matomo 始终处于行业前沿。
目前在 190 多个国家有超过 100 万个网站在使用 Matomo 的服务。你可以利用这个平台来获得网站访问者的信息,并深入了解你的各种营销活动。
Matomo 还使优化客户体验和评估内容的有效性变得更加容易。
Matomo 的优势
Matomo 是一个有很多令人印象深刻的好处的平台。这就是为什么自短短几年前更名以来,它获得了如此大的人气。
这个私有系统向其用户提供对数据的完全控制。它既有免费的内部选项,也有付费的云订阅可供选择。此外,由于 Matomo 的开源特性,您可以将其定制到您梦想的平台中。
如果你正在分析的网站很小,Matomo 有一些独特的优势。任何月访问量低于 10,000 的博客都只消耗少量的服务器。这些服务器支出也更便宜,因为您可以通过 Matomo 计划获得无限制的存储空间。
Matomo 出众的功能
Matomo 是一个提供网站访问者详细报告的平台,让你可以估计有多少人访问你的网站,他们来自哪里,以及他们是如何找到你的。它还向用户展示了不同的搜索引擎和人们用来到达你页面的关键词。
Matomo 甚至显示用户所说的语言,让你更好地了解人们是如何消费你的内容的。
在调查人们如何使用你的网站时,Matomo 擅长一些令人难忘的功能。首先,它提供了每个用户访问的页面信息。这可以帮助你确定你的大部分流量去了哪里,哪些页面在目标受众中失败了。
您还可以跟踪网站访问者的屏幕分辨率,以及他们点按的任何链接和他们可能下载的文件。

A heatmap featured on Matomo
热图是 Matomo 的另一个优秀功能,可以通过付费订阅获得。这些地图显示了用户在你的页面上点击最多的地方。它可以帮助你查看你的布局的有效性,甚至识别愤怒点击的实例,这可能会告诉你,要么是网站太慢,要么是某个功能出现故障。
付费服务还提供会话记录。您可以使用此功能来观看人们如何与您的页面交互的回放。你甚至可以追踪用户的 IP 地址来进行更好的人口统计研究。
什么是谷歌分析?
谷歌分析是由谷歌运营的免费网站分析服务。它带有经典的谷歌品牌名称,深受公众信任。

Google Analytics
谷歌分析自 2005 年谷歌收购顽童软件公司并采用其分析工具以来就一直存在。
这是一种比 Matomo 更广泛采用的服务,全球有超过 5000 万个网站使用它进行详细的分析研究。这使得谷歌分析成为世界上最受欢迎的分析工具。
你可以使用 Google Analytics 来接收关于你的网站用户的细分和分组数据。它还提供了关于用户行为的详细报告,这在规划您的营销推广时可能是有益的。
谷歌分析的优势
如果没有一些关键优势,你不可能成为世界第一的分析平台。谷歌分析有许多有用的功能,多年来一直让网站所有者感到高兴。
通过谷歌分析,你可以追踪访问你网站的用户信息,包括他们的浏览行为、地理位置、搜索来源等等。
这项免费服务有一个用户友好的界面,很容易快速上手。你日常使用的许多工具,如 CRM 或营销软件,都可以通过专门的 API 集成到谷歌中。
这项服务的主要好处之一是它被广泛使用。正因为如此,那里有很多信息,包括教程和技巧,可以帮助你从你的经历中获得最大的收获。
谷歌分析的突出特点
Google Analytics 最好的特性之一是它的实时报告。这让你可以每分钟都深入了解用户的行为。
它还为您提供了跳出率分析,让您了解有多少人正在离开您的网站。通过检查这一点,您可以发现您的网站中可能会排斥潜在客户的任何令人困惑或讨厌的功能。

Google Analytics dashboard
您的 Google Analytics 视图可以使用过滤器进行个性化,过滤器是其可定制仪表板的一部分。该服务的目标设定功能在建立新的活动以增加网站流量时也很方便。你将能够根据这些基准来衡量你通过谷歌分析收集的分析,以确定你的成功或失败。
还有电子商务跟踪,这使得在线商店能够更密切地关注他们的客户以及他们如何购物。洞察一个网站的电子商务部分可以显示很多关于购物车放弃和你的结账过程的有效性。
您还可以使用 Google Analytics 进行自定义指标跟踪,以独特的方式让平台完全属于您。
Matomo 与 Google Analytics 的异同
在选择 Matomo 和 Google Analytics 这样的服务时,看看这些产品的相似之处和不同之处会有所帮助。也许谷歌分析的一个关键功能符合你的需求,但 Matomo 没有类似的功能。
这就是为什么我们要深入研究这些服务,确定它们之间的异同。
Matomo 和 Google Analytics 的相似之处
Matomo 和 Google Analytics 有很多共同之处。两者都具有可定制的仪表板,允许您个性化您的视图。
他们也有客观的监控,这意味着你可以根据你为自己设定的目标来衡量你收集的数据。这些服务都允许对进入你网站的各种用户进行实时数据监控和位置跟踪。
得益于 iOS 和 Android 的应用程序,谷歌分析和 Motomo 可以通过移动设备访问。您还可以将 API 与这些平台一起使用,以连接您用于业务其余部分的各种软件工具。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
有了 Matomo 和 Google Analytics,你可以参与活动和电子商务跟踪。您也可以使用这两个系统来生成自动电子邮件报告。
Matomo 和 Google Analytics 的区别
Matomo 和谷歌分析的一个关键区别是,Matomo 为用户提供视频分析,而谷歌分析不提供。Matomo 还提供热图,显示用户如何通过彩色编码斑点与各种页面进行交互。这是另一个你在使用谷歌分析时无法使用的功能。

An artist’s rendering of an open-source platform (Source: O’Reilly Media)
谷歌分析也不是像 Matomo 一样的开源平台。这意味着当 Matomo 由开发者社区更新和维护时,Google Analytics 完全由 Google 控制。Matomo 也不使用 cookies ,这意味着你拥有你所有的数据。
使用 Matomo 时,您可以获得更高级的隐私控制。但是,Matomo 用户所享受的许多增强功能都可以归结为这两种服务之间的一个关键区别。
谷歌是 100%免费的,而 Matomo 是有代价的。
Matomo vs 谷歌分析:势均力敌的对比
现在让我们直接比较这两种服务,检查它们的安装过程、易用性、数据跟踪能力和成本效益。
安装
为了这篇文章,我们将把安装比较集中在 WordPress 网站上。先说马托莫。
Matomo 安装
有两种不同版本的 Matomo 提供给用户。你有 Matomo Cloud,它以高级订阅价格托管在云上。然后是 Matomo On-Premise,它是自托管的、开源的、免费使用的。
使用 Matomo 时,你要做的第一件事就是注册一个账户。为此,您需要提供您的电子邮件地址、网站 URL 和分析子域。

The download page to install Matomo on-premise
然后,您将收到一封确认电子邮件,其中包含您的所有登录信息和一个 Matomo 子域。获取 Matomo 提供的跟踪代码,并将其应用到你的 WordPress header 中。
需要在本地安装 Matomo。这意味着你必须在你的服务器上安装 Matomo 软件。您还需要有一个专业的开发人员来进行安装。一旦完成,你将收到插入到你的 WordPress 标题中的跟踪代码。
谷歌分析安装
安装谷歌分析时,你首先要创建一个免费的谷歌分析帐户。这也需要你有一个谷歌账号(也是免费的)。
Struggling with downtime and WordPress problems? Kinsta is the hosting solution designed to save you time! Check out our features
一旦你注册了,系统会为你提供一个 JavaScript 跟踪代码。然后,您必须将该代码添加到您的网站标题中。当然,也有不需要编码的插件可用。
易用性
当比较 Matomo 和谷歌分析时,你会发现谷歌更容易使用。Matomo On-Premise 需要对冗长的安装过程进行专家级编码,尽管 Matomo Cloud 安装起来容易得多,但它也是有价格的。谷歌分析永远是免费的。
当登录服务时,谷歌有一个非常用户友好的静态登录页面,但 Matomo 每次都要求你输入 Matomo 子域才能进入你的帐户。
谷歌分析是一个用户友好的平台,将你的报告分成五个部分。它们是:
- 实时
- 观众
- 获得物ˌ获得
- 行为
- 转换策略
Matomo 仪表盘也很容易理解。它实时显示你的访问,包括一个增加可用性的侧边栏菜单,甚至还有一个访问者地图。
跟踪
这两种优质服务都包括基本跟踪。这包括跟踪位置、设备、登录页面、退出页面、实时用户等等。
但是,Matomo Cloud 会根据您付费计划的功能限制您的跟踪。云计划包含 30 名团队成员、150 个目标、100 个细分和 30 个行动自定义维度。使用内部部署计划时,其中许多都是无限制的。
Google 允许无限制的用户、细分市场、目标和自定义维度,所有这些都是免费的。它还集成了谷歌工具和平台,如谷歌广告。这意味着你可以针对谷歌的核心网络要害优化你的网站,并观察用户如何与你投放的广告互动。
Matomo 还允许自动表单跟踪,而 Google Analytics 要求单独设置事件跟踪。
成本效益
谷歌分析是一项完全免费的服务。这显然意味着你不用付钱就能使用它。当您考虑到该服务具有无限的用户、目标、细分市场和维度时,您会意识到它非常划算。你不劳而获。
因此,虽然成本效益之战是免费谷歌分析的坚实胜利,但我们也需要打破 Matomo 的付费计划。
不管您网站的流量如何,Matomo On-Premise 始终是一项免费服务。然而,正如我们之前提到的,要在您的服务器上正确安装它,需要大量的工作和专家级的开发人员。当你考虑到雇佣一个开发者安装 Matomo 的成本时,这并不是免费的。
Matomo Cloud 中包含许多功能,可以在 Matomo 内部应用,但需要额外付费。这些包括但不限于:
- 活动日志(每年 29 美元)
- Woocommerce Analytics(每年 39 美元)
- 漏斗(每年 199 美元)
- 热图和会议记录(每年 229 美元)
- SEO web vitals(每年 89 美元)
- 还有更多
Matomo Cloud 是一种付费的高级服务,其费用取决于您的月流量。最低层是每月点击量高达 50,000 次的网站。这个点击率一直上升到 1 亿次。

The pricing page for the highest tier of Matomo
让我们一次一个地分解这些定价选项。
- 50,000 次点击——每月 23 美元
- 100,000 次点击——每月 39 美元
- 300,000 次点击——每月 79 美元
- 600,000 次点击——每月 129 美元
- 100 万次点击——每月 189 美元
- 200 万次点击——每月 369 美元
- 500 万次点击——每月 929 美元
- 1000 万次点击——每月 1790 美元
- 2500 万次点击——每月 4390 美元
- 5000 万次点击——每月 8590 美元
- 1 亿次点击——每月 16,900 美元
如你所见,Matomo 的定价差别很大。虽然该系统有许多先进的功能,并可以负担得起的小网站,成本将呈指数增长,因为你的数字增长。因此,你需要确保随着你的业务增长,你有能力扩展你的 Matomo 订阅。
Matomo 和 Google Analytics 可以一起使用吗?
像 Matomo 和 Google Analytics 这样的分析服务可以同时使用。这将允许您从这两个平台获得洞察力,并比较它们之间的异同。由于谷歌分析是一项免费服务,你可能已经准备好一头扎进这个概念,但我们建议花点时间考虑它需要什么。
如果你的网站上同时运行 Matomo 和 Google Analytics,你将同时运行两个不同的 JavaScript 代码。这会对页面加载速度产生负面影响,从而给你的操作带来重大影响。
当试图改善网站的用户体验时,网站速度是需要考虑的最重要的因素之一。令人震惊的是,如果一个网站的加载时间超过两秒钟,47%的消费者就会离开。

How long it takes for someone to leave a slow website (Source: Online Asset Partners)
此外,网站速度是谷歌在给你分配搜索引擎优化排名时检查的内容。这意味着任何希望 T2 提高搜索引擎优化分数的人都需要确保他们的网站以最佳速度运行。我们建议使用像 KinstaAPM 这样的免费工具来确定需要修复的内容。这对于为你的品牌建立定位策略至关重要,因为你希望人们将你的品牌与功能和效率联系起来。
因此,虽然可以在你的页面上同时运行 Matomo 和 Google Analytics,但不建议这样做。
Matomo 和 Google Analytics 是两个优秀的分析工具,可以让你很好地了解目标受众的习惯和行为。您可以使用这些平台来监控您的 SEO 增长,更好地了解您的目标人群,并衡量您的营销活动的成败,以确定您接下来需要采取的行动。
但至于谷歌分析或 Matomo 是更好的选择,这一切都归结于你作为一个企业的具体需求。如果你能负担得起 Matomo,并且认为像热图这样的服务对你的持续成功很重要,那么投资是值得的。
然而,如果你是一个利润率很低的小网站,你需要一个高质量的免费工具,那么谷歌分析是一个安全有效的赌注。如果你对这两个选项都不满意,我们还可以推荐我们自己的网站分析平台 MyKinsta Analytics 。
无论你决定使用哪种分析工具,你都需要应用托管、数据库托管和托管 WordPress 托管来让你的网站或项目出现在大众面前。
今天联系 Kinsta 并安排演示。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
Kinsta 欢迎 Matteo Duò担任主编
Kinsta 非常高兴地欢迎 Matteo Duò加入营销团队,成为我们的首位主编。
这些年来,Kinsta 已经成为 WordPress 教程和指南在网络上最受欢迎的来源之一。每月都有成千上万的用户阅读我们的博客和 T2 的知识库。除了提供世界一流的托管服务,我们的使命是帮助 WordPress 用户学习如何在他们的网站和业务上取得成功。
Matteo 将通过进一步推动我们的内容制作来帮助我们实现这一目标。这还包括获得新的线索和客户,简化我们的工作流程,向所有内部和第三方贡献者提供编辑反馈,以及改善我们的整体增长战略。
关于马特奥
在加入 Kinsta 之前,Matteo 在我们值得信赖和喜爱的合作伙伴之一 Codeable 担任内容营销策略师长达 4 年多,在那里他是“内容负责人”:流量增长、博客、时事通讯、线索生成和培育、SEO、电子书等。只是他经历过的一些活动。
在此之前,Matteo 作为一名自由记者、项目经理和技术博客,增长了他的热情和专业知识。他的文章在 WooCommerce、Freemius、The Next Web、Jeffbullas.com 以及其他一些知名的出版物和网站上发表过。
Matteo 在 WordPress 方面的经验不仅仅局限于编辑活动,还包括营销 WordPress 插件和基于 WordPress 的产品。事实上,他也和 WordPress 插件开发者一起工作,帮助他们产生更多的潜在客户,新的付费用户,作为一名营销顾问改善他们的渠道。
Matteo 是 WordPress 社区的活跃成员,他参与了几乎所有的 WordPress 欧洲活动,有时甚至是志愿者,但也因为他是瑞士卢加诺 WordPress Meetup 的创始人和联合组织者。趣闻:Matteo 在索菲亚举行的【2014 年世界语言营欧洲会议上遇到了 Tom、Mark 和 Anita——Kinsta 的三位联合创始人,当时 kin sta 还处于初创阶段,他正与另一家 WordPress 公司 wpXtreme 合作,不幸的是该公司已经停业。世界真小,不是吗?!
Matteo 拥有意大利博洛尼亚大学的语言哲学硕士学位。他喜欢旅游和了解新的文化。当他需要休息时,你可以在瑞士卢加诺找到他。
旅行、阅读、去看艺术展、打网球和壁球——不总是在同一时间——是他体验“离线”时间的首选方式。当你见到他时,有 50%的机会你会对我们的博客和内容有更多的了解。但是还有 50%的机会,你会有一篇哲学论文,关于夏威夷披萨是否应该首先被认为是披萨。😄
摘要
我们很高兴 Matteo 加入营销团队。随着 Kinsta 的不断成长,他将在确保我们不断为您带来高质量和适用的内容方面发挥关键作用。
你可以在 Twitter 上关注 Matteo:@ matteoduo或者在下面的评论中欢迎他。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
Medium vs WordPress:你应该从哪里开始写博客?
试图在 Medium 和 WordPress 之间选择你的博客或网站?在某种程度上,这是一个有缺陷的论点,因为这两者是完全不同的工具。一个并没有天生比另一个更好,它们只是…不同而已。您甚至可以同时成功地使用这两者!
在接下来的 1000 字左右的时间里,我们希望让您更深入地了解这些基本差异,以便您可以选择适合您的平台。
- Medium vs WordPress 简介
- 选择 WordPress 的优势
- 选择介质的优势
- 你应该选择哪一个?
中型 vs WordPress:介绍球员
媒介是一个“故事”的平台。这是一种称之为博客平台的奇特方式。但是“故事”品牌确实对媒体构建网站和吸引观众的方式产生了一些实际影响。
你有更多的人寻找实际的内容和想法,而不是像 Tumblr 这样的 GIF-fest。
要创建自己的内容,您可以注册一个 Medium 帐户,并使用 Medium 的用户友好的编辑器开始发布。不需要自己创建网站,方便。但这也意味着你不拥有任何东西。你都是在 Medium 的平台上做的。
WordPress* 则是全方位的内容管理系统。在一个非常基本的层面上,内容管理系统是一个工具,它使管理一个实际的网站变得容易,而不需要知道如何编码。
需要在这里大声喊出来。Kinsta 太神奇了,我用它做我的个人网站。支持是迅速和杰出的,他们的服务器是 WordPress 最快的。
你可以用它来创建一个博客(这是 WordPress 的根所在),但是你也可以很容易地添加一个电子商务商店、论坛或者只是一个普通的静态网站。
***WordPress.org 和 WordPress.com 是两码事 。我们在谈论 WordPress,因为那是真正的 WordPress 软件。
如何在媒体上开博客
有了 Medium,只需几秒钟就能上手。你需要做的就是创建一个帐户,然后开始写:

The Medium signup page
媒体编辑器是很多人喜欢的东西,因为它提供了一个很好的写文章的不受干扰的体验:

The Medium Editor interface
现在,大多数人可能会认为 Medium 编辑器是比 WordPress 编辑器更好的工具,特别是对于写博客文章(不过 WordPress 编辑器在管理网站的其他方面更加灵活)。
WordPress 的新编辑器将于 2018 年某个时候发布,它与媒体编辑器有很多相似之处,所以我们应该会看到这种写作体验的差距很快就会缩小。
一旦你写完了,你就发表你的文章,它就在世界上了。就是这样!
如何用自托管 WordPress 创建博客
当你使用自托管的 WordPress 时,开始写博客的过程肯定有点长。您需要:
- 注册托管(如 Kinsta)
- 找到并购买自己的域名
- 安装和配置 WordPress
- 用主题和插件定制你的站点

An example of how you add WordPress themes to control how your site looks
现在,因为 WordPress 如此受欢迎,这个过程变得简单多了。有些主机,像 Kinsta ,甚至会让你点击一个按钮就可以安装 WordPress,这样事情几乎就像 Medium 一样简单。

Add WordPress site
尽管 WordPress 需要更多的前期投资,但是这种方式有一些主要的优势,我们将在下面的章节中介绍。
选择 WordPress 而不是 Medium 的 4 个理由
我们将从 WordPress 相对于 Medium 的优势开始,因为在下一节指出 Medium 的优势会更简单。
1.WordPress 让你拥有自己的网站
还记得一秒钟前关于主机和域名的技术术语吗?
这就是为什么它很重要:
当你在自己的主机上设置 WordPress 时,你 100%拥有你的网站和你发布的所有内容。
这意味着:
- 没有人可以“关闭”你的账户,把你踢出平台(当然,除非你违反了实际法律!)
- 你可以对你的网站做任何你想做的改变
- 您的数据和内容始终 100%属于您自己。虽然 Medium 使导出文章变得容易,但是当你在 Medium 上写作时,你的内容仍然“活”在 Medium 的服务器上。
2.WordPress 使得添加新功能和改变网站外观变得容易
因为你拥有自己的网站,你可以利用 WordPress 庞大的插件和主题生态系统:
- 插件(Plugins)——这些插件让你无需了解任何代码就能轻松地为你的博客添加额外的功能。联系方式、论坛、社交媒体分享按钮 …应有尽有。
- 主题(Themes)——这些可以让你轻松改变博客的外观,而不需要知道任何代码。建议阅读:如何安装一个 WordPress 主题。
结合起来,这两种类型的扩展可以让你完全控制你的网站的外观和功能,而不需要知道如何编码,这给了你一个 Medium 无法比拟的定制级别。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!
这也是 Slack 在 2018 年将他们的博客从 Medium 搬到 WordPress 的一个原因。
Slack blog on WordPress
3.WordPress 不会限制你的内容
这可能是一个较小的考虑,因为媒体的内容限制不是过于繁重。但事实是,你可以在媒体上创作的内容类型有一些限制:

An example of Medium’s content rules
大多数用户会遇到这些限制吗?大概不会。但事实是它们存在于媒体上,而不在 WordPress 上。如果你和他们发生冲突,你可能会以你的中介账户被关闭而告终。
4.WordPress 让你随心所欲地赚钱
最后,如果你渴望从你的内容中赚钱,你绝对应该选择 WordPress 而不是 Medium。
虽然 Medium 确实有一个合作项目,允许人们从他们的内容中赚取一些钱,但它并没有支付太多,这就是为什么许多大出版商离开 Medium 的原因。
此外,它只是一个单一的 set 方法,而 WordPress 允许你:
事实证明,掌管你自己的开源平台是有道理的:这永远不会发生在你身上。https://t.co/Cf3eFoqXly
因此,虽然媒体“转向别处”,我们将继续修复互联网,真的。
-@ jdyk 的约略2018 年 5 月 10 日
如何用金士达 APM 工具修复你的会员网站的速度(实例)
监控会员网站的速度和性能比简单的 WordPress 网站更棘手。如果你没有正确配置你的会员网站,你很快就会发现自己被缓慢的页面加载、 500 错误和定期的停机所困扰。为了让你的会员开心,让你的网站保持低流失率,这些都是绝对不允许的。
你可以遵循有效运行会员网站的注意事项,确保你已经优化了你的网站,使其以最佳性能运行。然而,由于复杂性的增加,当你在会员网站上遇到任何性能问题时,很难快速修复它们。这就是像 Kinsta APM 这样的专用 APM 工具非常方便的地方。
在这篇文章中,你将了解 WordPress 会员网站的各种组件,为什么你需要 APM 工具来监控你的会员网站的速度和性能,以及你如何使用 Kinsta APM 来做到这一点。
你对开始感到兴奋吗?让我们开始吧!
会员网站的各种组件
在许多方面,会员网站的复杂性就像一个网上商店。由于它们的个性化功能,如用户账户、第三方集成、结账等等,它们都向用户提供了大量不可缓存的内容。
Kinsta 把我宠坏了,所以我现在要求每个供应商都提供这样的服务。我们还试图通过我们的 SaaS 工具支持达到这一水平。

A typical WordPress Membership site stack
会员网站可以有多种风格。它可以是一个简单的博客网站,有些内容只对其成员开放,也可以是一个高度复杂的基于课程的网站,用一个学习管理系统构建。它也可以是一个论坛,成员可以在这里讨论不同的话题。
不管确切的用例是什么,编织不同成员站点的公共线程是一个社区,在这里它们都可以连接和归属。

Usual components of membership sites
通常,一个 WordPress 会员网站有受限内容,支付网关结账(包括订阅或定期支付),自动电子邮件,优惠券,独家视频和可下载内容。
一个链条的强度取决于它最薄弱的一环,会员网站的表现也是如此。由于有如此多的链接,性能问题随时随地都可能出现。快速有效地应对这些问题对于留住你的成员和发展你的社区至关重要。
Kinsta APM 可以帮你做到这一点,帮助你直接解决 WordPress 网站的性能问题。它的建立是为了彻底监控 WordPress 网站的性能,包括在 kinsta 托管的会员网站。
T3】
会员网站使用 Kinsta APM 工具的好处
您的会员网站的绩效指标可以对您的底线产生重大影响。您可以使用 Kinsta APM 来解决这些问题。Kinsta APM 为会员网站带来的诸多好处包括:
增加会员注册
第一印象很重要!网站表现对转换率有重大影响。研究一直表明,简洁的网站会带来更多的销售和注册。Kinsta APM 可以帮助您保持会员网站的速度和性能,确保潜在和现有会员不会放弃您的网站。
降低流失率
吸引新成员比留住现有成员困难得多。流失是任何会员网站的现实生活。虽然流失率变化很大取决于你的会员网站所处的行业,但最大限度地降低流失率对你的业务的长期成功至关重要。

Churn rates by industry (Source: Recurly Research)
即使是你的网站表现的最轻微的偏差也会显著影响你的流失率和底线。您可以使用 Kinsta APM 在这些问题发生之前就解决它们。
提高会员参与度
这与前面的好处完全吻合。绩效改进不仅会影响流失率,还会影响会员参与度。谷歌的一项研究发现,如果一个网站表现良好,用户会再次访问该网站,并更多地参与其中。用户还会记得他们上次访问时的感受,并且他们会本能地决定基于那次经历再次访问某个网站。对于会员网站来说,这是非常重要的。
提升您的品牌声誉
用户体验在会员如何看待你的品牌中扮演着重要角色。根据调查, 88% 的在线用户在经历了不愉快的经历后不太可能继续忠于一个品牌。同一项研究还发现, 75% 的用户更有可能因为网站性能问题而跳槽到竞争对手的网站。
更多营销时间
不必处理性能问题,或者在出现性能问题时快速修复它们,可以为您和您的团队(如果有的话)节省大量时间。你可以用这些额外的时间去做更重要的事情,比如创建内容,与你的会员互动,扩大你的会员网站。
降低托管和基础设施成本
优化你的网站有助于你保持尽可能低的虚拟主机和基础设施成本。Kinsta APM 通过精确定位代码、插件、扩展或第三方服务负责人,帮助您识别站点上的性能瓶颈。您可以使用这些信息来削减阻碍网站性能的开支。
如何使用 Kinsta APM 解决会员网站的速度问题
既然我们已经讨论了 Kinsta APM 如何帮助你解决你的 WordPress 会员网站的速度和性能问题,现在是时候看看一些真实的例子了。
从 Kinsta APM 的基础知识开始
Kinsta APM 附带了许多性能监控特性。因此,你需要熟悉它的各种术语,并学习如何阅读它的见解。您可以参考我们的 Kinsta APM 知识库文章开始学习。关于 Kinsta APM 的更多细节,我建议你阅读 Kinsta APM FAQ 部分。
测试 WordPress 成员网站设置
Kinsta APM 只适用于 Kinsta 托管的 WordPress 网站。我建立了一个演示电子学习网站来模拟会员制网站面临的最常见的性能问题。

The test Kinsta LMS membership site’s homepage
与针对 WooCommerce 的 Kinsta APM 文章一样,我使用了一个真实的域名来确保发生 SSL/TSL 握手。以下是演示网站的详细信息:
- 服务器栈: Nginx 1.19.4,PHP 7.3.24-3,MariaDB 5.5.5
- WordPress 版本:
- 主题: 雅特主题 2.6.1
- 主要插件: Gutenberg、Akismet 反垃圾邮件、Kinsta 必备插件。
- LMS 插件: LearnDash LMS
对于每个例子,我对站点进行了一些定制,以说明特定的性能问题。是时候排除故障了!
1.会员网站 APM 示例:会员前端性能缓慢
前端性能对任何网站都至关重要。一般来说,会员制网站提供大量动态内容,这要归功于它们满足每个会员的个性化功能。然而,这会给服务器带来很大压力,导致网站速度慢得令人沮丧。

PHLEARN.com powers their education platform with Kinsta
在这个例子中,每当用户访问受限内容页面时,会员网站花费太多时间来响应。有时,需要超过 3 秒的时间来响应。这是一个糟糕的用户体验。
让我们启用 Kinsta APM 来诊断这个性能问题。

Enabling Kinsta APM in MyKinsta dashboard
首先,在您的 MyKinsta 仪表板中进入监控页面,然后启用性能监控。Kinsta APM 需要几秒钟时间来记录您站点的性能指标。
我们建议您在深入研究 Kinsta APM 收集的数据之前至少等待 5 分钟。这确保了 Kinsta APM 收集了足够多的可操作的性能指标。
您还可以设置 Kinsta APM 处理性能指标的持续时间。在这里,我选择查看过去 60 分钟内的性能指标。

Kinsta APM’s primary dashboard
从上图中,您可以看到 PHP 进程占用了大部分事务时间。让我们来看看下面的最慢事务表中列出的/单个事务。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!

The “Slowest transactions” table in Kinsta APM
/single 事务提示一个 post 模板文件,在这个站点中可以是一个单独的课程页面。

Transaction samples of one of the slowest transactions
当您点击任何最平静的交易时,Kinsta APM 将向您显示所选的交易样本的列表。最慢的样本(11627.77 毫秒)是记录的最差情况,而第 95 百分位(10816.37 毫秒)和第 50 百分位(6084.27 毫秒)样本更好地代表了整体性能指标。
这里,最慢的样本足够接近于第 95 百分位样本。让我们来看看。

Transaction details of the 95th percentile sample
请注意生成该事务的 URL。它指向了/课程/WordPress-基础-教程页面。向下滚动事务跟踪时间线,查看哪个跨度占用的持续时间最长。

Kinsta APM highlights spans with critical performance issues
您可以看到两个跨度占据了事务持续时间的相当大的百分比。在大多数情况下,Kinsta APM 可以智能地将这些跨度识别为关键跨度,并根据其严重性用醒目的红色或橙色突出显示。这里,这些红色跨度表示一个超临界性能问题。
一个外部 HTTP 请求启动了【courses.salrav-external.com】的获取 span。让我们点击它来找到更多的信息。

“Span details” and “Stack trace” of a span
Span details 部分将向您展示关于这个 Span 的更多细节,比如它的类型、子类型,以及完整的 HTTP URL 。就在它的下面,在堆栈跟踪部分,您可以看到一个名为course-views-counter.php的 PHP 脚本启动了这个 span。
在试图找出性能问题的确切原因时,所有的部分都很重要!让我们记下我们的发现,然后在course _ views _ counterspan 上查看更多信息。

“Span details” and “Stack trace” of another span
在 Span details 部分,你可以看到一个名为 course-views-counter 的插件生成了这个 Span。金斯塔 APM 在这里非常有益。它处理堆栈跟踪下的所有数据,并向您显示导致这个性能问题的确切插件。

The dynamic course views counter
我模拟了这个问题,以强调你应该试着避开添加帖子浏览量/分享量计数器。为这些计数器生成动态数据会使您的 web 服务器不堪重负,尤其是当有许多成员在线时。如果你仍然想使用它们,你可以按照我们推荐的会员网站优化来最小化它们的影响。
现在您已经诊断出了问题的原因,您可以开始修复它了。如果你或你的团队没有技术专长来修复它,那么你可以雇佣一个 WordPress 开发者来帮你做这件事。你也可以向插件开发者报告这个性能问题,然后等待他们的修复。
Kinsta APM 可以帮助网站所有者和开发者快速诊断和修复关键的性能问题。
需要一个给你带来竞争优势的托管解决方案吗?Kinsta 为您提供了令人难以置信的速度、一流的安全性和自动伸缩功能。查看我们的计划
信息:在大多数情况下,解决由 Kinsta APM 工具识别的性能相关问题不在我们的支持范围内。如果你需要额外的帮助来优化你的 WordPress 网站,我们建议联系我们的合作伙伴。
2.会员网站 APM 示例:在每天的某个时间,网站性能缓慢
无论多少新的营销渠道来来去去,电子邮件是永远的!拥有一个强大的电子邮件营销策略对于将潜在客户转化为顾客,将顾客转化为品牌传播者至关重要。 75%的电子邮件营销收入来自自动化的电子邮件活动。一个专注于电子邮件营销的插件可以在这方面提供很大的帮助。

Automated email campaigns are more successful (Source: Salesforce)
在本例中,我们将诊断一个会员网站,该网站在每天的特定时间表现非常糟糕。碰巧的是,这个时间正好是网站自动向所有成员发送电子邮件的时间。
让我们在此期间启动 Kinsta APM 来更详细地检查这个问题。像以前一样,在深入研究 Kinsta APM 收集的性能指标之前,谨慎的做法是等待。

Kinsta APM’s main screen in MyKinsta dashboard
从总事务时间图表中,您可以看到在 22:30 左右出现了一个事务时间峰值。它混合了 PHP 进程和外部请求。

Notice the spike in transaction time
接下来,让我们向下滚动到下面的最慢事务表。在这里,您会发现 /wp-admin 和 /wp-admin/admin-ajax.php 事务执行的持续时间最长。它暗示这些征税请求来自于 WordPress 管理仪表板。但这还不是具体的证据。

The slowest transactions table in Kinsta APM
/wp-admin 事务占总事务时间的高达 97.74% ,最长持续时间为 8188.95 ms。它的平均持续时间 1,663.61 毫秒也不好,尤其是当你还可以看到它每分钟运行近 50 次的时候。让我们深入地看一下这笔交易。

Select transaction samples of the “/wp-admin” transaction
从交易样本列表中选择最慢的样本。你现在可以看到更多关于它的细节,比如它的确切网址和交易跟踪时间线。

Transaction sample details with exact URL
沿着事务跟踪时间线绘制图表,找出最慢的时间跨度。Kinsta APM 将突出显示最有问题的跨度,因此您可以轻松快速地找到它们。
mass_member_emailer 跨度构成了该交易样本持续时间的1269.68 ms,是该交易样本持续时间的 15.5% 。

Kinsta APM highlights slow spans
点击 span,了解更多相关信息。在 Span details 部分,您可以看到生成这个 Span 的 PHP 脚本名称和插件。这里,脚本名为 mass_member_emailer ,由同名插件调用。

Checking the slow span’s details
堆栈跟踪部分还可以提供关于跨度的更多信息。然而,在这里这并不重要。
沿着事务跟踪时间线继续往下,我们遇到了一个名为Mass _ Member _ Emailer—>send _ emails,的时间跨度,它花费了压倒性的 5,070.85 ms 来执行。这几乎占了这个交易样本持续时间的 62% 。

Kinsta APM highlights the most critical spans with red color
仔细研究这一时期的细节,你会发现与前一时期相同的证据。

The critical span’s details and stack trace
在查看了 Kinsta APM 强调的两个跨度后,我们可以得出结论,罪魁祸首是一个名为 Mass Member Emailer 的插件。查看它的设置,我发现它会在固定时间自动给所有网站用户发送电子邮件。

The custom plugin used to simulate this issue using dummy members
由于这个插件使用主机网络服务器发送电子邮件(而不是外部服务),它降低了每个人的网站速度。因此,选择正确的自动化解决方案来运行自动化电子邮件活动,对于保持您的会员网站的快速运行至关重要,即使它可以快速扩展。
许多会员制网站表现不佳是因为常见的问题,比如这里模拟的问题。Kinsta APM 帮助您确定性能问题的根本原因,使您的会员网站始终保持最佳速度!
使用 Kinsta APM 诊断其他性能问题
和上面的例子一样,你可以使用 Kinsta APM 来诊断 WordPress 成员站点上几乎任何类型的性能问题。无论是未优化的优惠券插件还是缓慢的附属仪表板,Kinsta APM 都可以与 Kinsta 托管的各种 WordPress 网站兼容。
虽然从营销和商业的角度来看,网站的用例很重要,但从技术上来说,在 Kinsta APM 的密切关注下,所有的 WordPress 网站都是一样的。毕竟都是代码。从 WooCommerce 商店和会员网站到 WordPress 多站点网络,你可以使用 Kinsta APM 来诊断 WordPress 站点上几乎任何类型的性能问题。
摘要
会员网站是将你的技能和内容货币化的好方法。要运营一个成功的会员网站,你需要为你的会员提供一流的用户体验。只有维护一个高性能的网站才有可能。
对于性能优化,会员网站提出了特殊的挑战,就像在 WooCommerce 商店解决性能问题一样。在本文中,您了解了使用 Kinsta APM 的各种方法,以保持您的会员网站的速度和性能。
WordPress 是一种快速简单的会员网站入门方式。然而,WordPress 会员网站在处理性能优化方面是独一无二的。归根结底,这一切都是为了建立一个由志同道合的人组成的社区。在这个富有成效的旅程中,使用 Kinsta APM 作为您的有用伙伴。
您遇到过会员网站速度和性能问题吗?我们很想听听你的想法和挣扎。请在下面留下评论。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。
如何在 WordPress 中添加元描述(将点击率提高到 5.8%)
如果你没有给你的网站添加元描述,你就错过了一个吸引和转化新访客的好机会。这看起来没什么大不了的,但是出现在搜索引擎结果中的目标片段可以产生巨大的差异。没有一个,你可能会失去点击量。
元描述是出现在谷歌和必应等搜索结果页面上的简短片段。你可以自定义它们来更好地描述每个页面,吸引新用户,使你的搜索结果从竞争网站中脱颖而出。
添加元描述可以像填写一个框或插入一行代码一样简单。
准备好获得更多点击了吗?我们将向你展示如何使用和不使用插件在 WordPress 中添加元描述。
更喜欢看视频版?
什么是元描述?
像谷歌这样的搜索引擎使用一种叫做网络爬虫的机器人来索引你的网站。这给他们的信息允许他们在搜索结果中正确显示,这样当人们搜索与相关的关键词时,就能找到你。
但是因为这个程序只是一个程序,它不会自动知道你的站点是关于什么的。你必须使用不同的元素来告诉它,比如站点地图、模式标记和元标签、等等。这就是元描述如此重要的原因。

Example of a meta description
用户可以在搜索结果的标题下看到页面的元描述。元描述是为了告诉他们网页的内容和目的,这样他们就可以决定是否点击它。在本例中,您还可以看到站点链接:

Example of sitelinks
谷歌的爬虫比以前更好了。事实上,他们现在可以自动提取标题和元描述,并计算出页面的主题,而无需您手动定义关键字。
如果你没有写你自己的元描述,Google 会从页面中提取内容为你生成一个。但你可能会错过一个机会,说服人们点击带有定制的目标片段的链接,以赚取转换。
元描述如何影响你的搜索引擎优化
元描述实际上对你在 T2 的搜索引擎优化排名没有直接影响,然而谷歌仍然建议为你网站的每个页面创建独特的元描述。对于 SEO 来说,在你的内容中自然出现的关键词才是重要的。
元描述影响的是点击率,或者有多少人决定点击你的网站。
想想你最后一次用谷歌搜索东西的时候。是什么让你选择了某个环节?可能是标题,描述,或者两者都说服了你。
Meta descriptions positively impact CTR (Image source: Backlinko.com)
根据反向链接的说法,独特的元描述对 CTR 有重大影响:
为每个页面写独特的元描述可以增加你网站的有机点击率。我们发现,与没有描述的页面相比,带有元描述的页面的点击率要高 5.8%。”
搜索引擎可能会自动生成一个摘录,但如果这个描述不能很好地传达你的内容,人们会忽略它,选择另一个网站。
编写自己的元描述可以确保你对人们看到的东西有更多的控制。
我说的是“更多控制”,不是“完全控制”然而,谷歌不会总是使用你的元描述。
有时它会显示与用户搜索更相关的部分页面内容。但是在大多数情况下,它更喜欢使用您提供的代码片段,而不是使用自动生成的代码片段。
一个写得好的元描述在吸引和转化访问者方面起着很大的作用。它可能不会直接影响搜索引擎优化,但它会让你获得更多感兴趣的访问者,更高的点击率确实会提高你的排名。
元描述与元关键字
元数据作为一个整体是一组 HTML 标签,告诉搜索引擎和网络爬虫你的站点是关于什么的。这些包括标题、描述和关键字。
你已经知道元描述是描述网页内容和目的的 HTML 元素。
元关键词是旧互联网的遗迹。换句话说,它们已经被废弃,不再使用。在过去,它们被用来告诉搜索引擎一个页面覆盖了什么主题,类似于你如何标记一个社交媒体或博客帖子。
然而,一旦人们意识到你可以放入任何不相关的关键词,并从与你的网站无关的主题中获得免费流量(你好“免费色情”和“免费 mp3”),搜索引擎就会取消对该功能的支持。你仍然可以添加元关键词,但是对于最流行的搜索引擎,它不会做任何事情。
现在,谷歌使用更复杂的网络爬虫来检查网站的内容,这些爬虫可以自动找出哪些主题与你在页面上写的内容相关。它完全忽略了 meta keywords 属性。
现在,改进 SEO 不再使用元关键词,而是优化内容中自然关键词的使用,并解决其他技术问题,如网站的 T2 速度。
在 WordPress 中编写和优化元描述的 5 个技巧
当涉及到元描述时,没有硬性的规则可以遵循。但是仍然有一些你应该记住的最佳实践。这些可以帮助你在竞争中脱颖而出,增加你的点击率。
让我们回顾一下这些最佳实践,这样您就可以编写更好的元描述。
更喜欢看视频版?
1.理想片段长度
您不能让您的代码片段长度无限制。如果超过一定的字符数,它将被截断。你的元描述可以想多短就多短,但是不要超过 155-160 个字符,否则很可能会被突然截断。这看起来不太好。

Another example of a meta description
2.聚焦于一个关键词
在你写的每个片段中包含一个关键词是个好主意。如果你正在为一篇博客文章创建一个片段,你可以使用你写文章时使用的关键词。否则,做一些关键词研究,选择一个与你的目标一致的。
包含一个关键词将有助于你以一种引人注目的方式组织你的描述。此外,谷歌有时会突出显示与用户搜索词匹配的关键词。瞄准一个流行的关键词,并把它包含在你的描述中,可能会产生醒目的粗体字。

Bolded text when related to the query
3.写清楚、连贯、吸引人的描述
你的元描述就像一个免费的广告,所以把它作为一个转换潜在访客的机会。直接面对读者,通过提出问题来吸引他们,然后概述点击你的链接的好处。使用生动的图像,吸引眼球的陈述,或信息丰富的句子。
最重要的是,通过证明你的网站有人们正在寻找的东西来赢得你的点击。你有最好的服务或产品,或者他们一直在寻找的信息吗?你有什么是你的竞争对手没有的?
确保你的片段是高质量的,没有令人尴尬的措辞,重复,或者可能会让人拒绝的语法错误。
考虑加入行动号召,如“省钱”、“阅读我们的评论”或“了解更多关于元标签的信息”。然而,避免像“点击这里”这样听起来别扭的 CTA。许多网站选择跳过行动号召,专注于提供有价值的信息;看看什么听起来对你合适。

Make your meta description appealing
最后,弄清楚当你的链接被点击时会发生什么。他们会阅读博客文章、浏览商店或登陆专题页面吗?他们要去哪里,到了那里会发现什么,应该很明显。
4.避免重复的片段
元描述提供了一个接触潜在客户并转化他们的免费机会,所以不要浪费它来创建重复或副本片段,即多个网页上相同或几乎相同的元描述。
当你的网站上有成百上千的页面时,使用一个模板并去掉一些细节似乎是个好主意。但是重复的描述看起来不太好,尤其是当它们覆盖了很多页的时候。人们会很快忽略你网站的结果。
一个默认的元描述比一个坏的要好。如果你没有时间为每一页添加一个精心编写的、引人注目的片段,最好让谷歌来做这项工作,专注于几个关键页面。
5.别骗人了
元描述可能不会提高你的搜索引擎优化,但如果你从事故意欺骗行为,它们肯定会损害你的点击率。
确保你的描述是准确的。首先要诚实地面对人们点击的内容。不要谎报页面内容。
避免关键词填充。它读起来很别扭,会降低点击率,而且可能会让你受到惩罚,或者导致谷歌完全忽略你的自定义描述。
记住这些提示,你会创造出更好的元描述。
为特定页面编写元描述
制作元描述的技术在本质上是相似的,但是每种类型的页面都需要有自己特殊的风格。为博客帖子、主页和产品页面编写片段的方式有很大不同。
这里有一些为一些关键类型的页面编写元描述的技巧。
主页元描述
主页描述得到特殊对待。这是你网站的脸面,所以你必须让它有价值。许多网站写一个简短的一句话的推介,甚至从未达到 160 个字符的限制。
注册订阅时事通讯
想知道我们是怎么让流量增长超过 1000%的吗?
加入 20,000 多名获得我们每周时事通讯和内部消息的人的行列吧!

WordPress.com meta description
你在这里的工作是销售你的品牌。用一篇短小精悍、写得很好的文章,简明扼要地解释你做了什么以及为什么他们应该选择你。这适用于类似的页面,就像你的“关于”和“使命陈述”一样。
博客帖子元描述
对于主要是信息性的页面,比如博客帖子,你可能不希望你的描述读起来像一个明显的广告。当然,你是在做推销,可以包括行动号召,但要把重点放在信息上。
当人们去寻找一个问题的解决方案时,他们不想被宣传。他们想要答案。告诉人们当他们点击这个链接时他们会学到什么,并证明你知道你在说什么。

Meta description for a blog post
类别页面元描述
还有分类页面要考虑。这是一个很难写的。大多数搜索不会出现一个类别档案,但是你不应该错过一个创造一个引人注目的转换片段的机会。
你最好的办法是通过暗示人们在这个类别中会找到什么类型的文章来吸引他们,让他们有阅读的心情。

Meta description for a category page
对于基于新闻的网站和电子商务商店,分类页面起着关键作用,因为如果优化得当,它们可能是能够获得更高排名和更多流量的关键页面。
产品页面元描述
说到网上商店……当人们想快速买东西时,产品页面会在搜索结果中弹出。
不要推广你的网站,而是把重点放在单个产品上。使用类似的策略:写一些东西,快速解释这是什么,为什么他们需要它。
你也可以包括诸如价格和其他产品信息的规格。

Meta description for a product page
理想情况下,你应该为每个产品写一个独特的元描述。仅仅使用一个模板并替换掉产品名称可能很有诱惑力,但是这种通用的方法没有手写的效果好。
如何用 Yoast SEO 添加元描述
如果你想给你的网站添加自定义的元描述,你最好的选择是安装一个 SEO 插件。任何流行的 SEO 插件都会让你很容易为你所有的页面和博客文章编写代码片段。
虽然可以手动添加它们,但这意味着编辑站点文件。在一些设置中,没有 FTP 访问这可能是不可能的,这使得事情更加复杂。另外,如果没有插件,很难给每个页面添加单独的描述。所有最简单的解决方案只是为整个网站设置了一个默认的代码片段。
对于大多数人来说,最好只是安装一个 WordPress 插件,而不是处理令人头痛的问题。
你可以使用一个简单直接的插件,比如 WP Meta SEO 或者一个功能更全的 SEO 套件。一些流行的 SEO 插件包括 Yoast SEO 和SEO 框架。由于 Yoast 是使用最广泛的,我们将向您展示如何用它来添加元描述。
厌倦了 WordPress 的问题和缓慢的主机?我们提供世界一流的支持,由 WordPress 专家提供 24/7 服务和超快的服务器。查看我们的计划
现在让我们安装 Yoast。你可以访问它的插件库页面或者登录你的 WordPress 后端,前往插件>添加新的。搜索 Yoast 并下载,或者上传之前安装的 zip 文件。

Install Yoast SEO plugin
然后只需激活插件>已安装插件中的插件就可以让它工作了。
使用 Yoast SEO 为帖子和页面添加元描述
Yoast 将在你的管理后台添加一个新的 SEO 标签。你可以转到此处配置设置,包括默认值和你的页面在社交媒体上的外观。但是要进入单独的元描述编辑器,你需要打开一个现有的帖子或页面,或者创建一个新的。
向下滚动到编辑区域下方,您会看到新的 Yoast 部分。点击编辑片段,开始在元描述部分输入。一旦达到最佳字符长度,底部的栏会变成绿色。您还可以添加动态变量来显示标题或类别等元素。

How to add a meta description in Yoast SEO
这就是为你网站上的任何帖子或页面创建自定义元描述所需要做的全部工作。
用 Yoast SEO 给你的主页添加一个元描述
在 Yoast 中,为您的主页添加一个代码片段的工作方式与普通方式略有不同。进入 SEO >搜索外观。
就在那里,你会看到主页部分,带有普通的编辑器 UI。像之前一样写个描述和标题就行了。

Yoast SEO’s settings
请记住,编写主页片段是对整个网站的推销。描述你的公司或博客,你做什么,你能提供什么。完成后,点击保存更改。
这样,你的主页搜索结果应该会很快更新,显示新的元描述。
用 Yoast SEO 添加默认元描述
如果您想添加一个默认的元描述,当您设置一个自定义描述失败时,该怎么办?那很简单。在 SEO >搜索外观>内容类型(查看搜索外观页面顶部的选项卡)下,您会看到两个下拉列表,一个是帖子,一个是页面。

Adding a default meta description
这些也使用典型的元数据编辑器,所以继续为文章和页面添加默认片段。
现在,当你创建一个新的帖子或页面时,元描述将自动使用你放在这里的信息。这样,如果你发表了一篇博客文章,但忘记添加一个片段,它将会回到你在这里写的内容。
如果你喜欢基于一个模板,你也可以把它粘贴到这里,它会出现在编辑屏幕上,当你发表一个新的帖子时就可以填写了。
使用 Yoast SEO 为类别档案添加元描述
你的分类页面呢?这些小档案没有很多文本内容,这可能会使谷歌感到困惑,并导致它显示一个破碎的或看起来奇怪的片段。您可以自己添加一个简短的摘录来避免这种情况。
进入 SEO >搜索外观>分类法并在编辑器中创建你的描述。或者你可以去发帖>分类为每个单独的分类存档页面写一个新的。

Example of a meta description for a category page
这个片段不需要太复杂。你仍然可以像“在这里发现几十个(类别)帖子”这样做,但是你不需要这么严格,因为这个页面不太可能在搜索结果中频繁出现。
这就包含了您需要知道的关于用 Yoast 添加元描述的所有内容。
如何在没有插件的情况下添加元描述
如果你不想安装 SEO 插件来创建自定义元描述,你可以编辑你的主题文件。然而,这可能有点麻烦,尤其是当您想要向单个页面添加描述时。
下载一个插件对你来说可能会更容易。但是如果你真的不愿意,下面是手动操作的方法。
在编辑你网站上的任何文件之前,确保做好备份。另外,创建一个子主题也是一个好主意,因为如果你犯了一个错误,它会保护你的网站,并且当 WordPress 更新时不会重置你的更改。
我们将创建一些通用元标签,应用于你网站的每一页。首先,你要去设置>常规。在标语下,写下你想要用来代表你的网站的元描述。

Editing your theme files to add a meta description
接下来进入外观>主题编辑器。如果您看不到它,您可能需要使用 FTP 访问您的 header.php。在工具条中找到主题标题(header.php),点击编辑。将此代码粘贴到<头>和</头>之间的任何位置。
<meta name="description" content="" />
这将把标语添加到你网站的每个页面上。
显然,这对你的博客文章来说不是很理想。如果人们知道每个帖子是关于什么的,你更有可能得到点击,而不是得到一个通用的描述。
使用这些代码,搜索引擎将会像平常一样从文章中抓取内容用于元描述。
<meta name="description" content="<?php if ( is_single() ) {
single_post_title('', true);
} else {
bloginfo('name'); echo " - "; bloginfo('description');
}
有了这两个程序,你将在主页和分类档案等普通页面上获得定制的描述,但你的帖子将有一个正常的片段。
如果您想为每个页面添加单独的描述,该怎么办?这往往会变得更加复杂,最好使用一个插件来解决这个问题。但是你可以用一个条件标签或者用自定义字段来实现。
摘要
如果没有有针对性的、精确的元描述,你可能会错过点击和转化。让谷歌生成代码片段是不可靠的。通过写你自己的,你得到了一个“推销”的机会,并确保用户可以做出完全知情的决定。
研究表明,自定义的元描述能够将你的点击率提高 5.8%,考虑到你可能需要的资源很少,这是一个不错的结果。事实上,要在 WordPress 中添加元描述,你既可以手动编辑你的 WordPress 文件,也可以使用 SEO 插件来控制你的代码片段。
我知道,自定义元描述可能比您预期的需要更多的时间,但从长期结果来看,这是一项值得做的活动。
让你所有的应用程序、数据库和 WordPress 网站在线并在一个屋檐下。我们功能丰富的高性能云平台包括:
- 在 MyKinsta 仪表盘中轻松设置和管理
- 24/7 专家支持
- 最好的谷歌云平台硬件和网络,由 Kubernetes 提供最大的可扩展性
- 面向速度和安全性的企业级 Cloudflare 集成
- 全球受众覆盖全球多达 35 个数据中心和 275 多个 pop
在第一个月使用托管的应用程序或托管的数据库,您可以享受 20 美元的优惠,亲自测试一下。探索我们的计划或与销售人员交谈以找到最适合您的方式。




T2】

T2】






























T2】
T2】
T2】

浙公网安备 33010602011771号