作者: tianbao

  • 如何修复WordPress中的CORS错误?

    错误类型:
    HTTP错误
    错误名称:
    CORS错误
    英文名称:
    Access to XMLHttpRequest at ‘……’ from origin ‘…..’ has been blocked by CORS policy
    错误描述:
    默认情况下,Web浏览器使用同源安全策略允许源自同一服务器的所有请求。否则……
    错误变体:
    Access-Control-Allow-Origin’ header has a value ‘…..’ that is not equal to the supplied origin.
    Origin ‘….’ is not allowed by Access-Control-Allow-Origin. Status code: 401
    XMLHttpRequest cannot load ‘…..’ due to access control checks
    更多信息

    如何修复WordPress中的CORS错误?

    只要您以简单的方式使用WordPress网站,它就可以完美运行。当您想要添加其他功能和第三方脚本时,它会给您带来不同类型的错误。在我们之前的文章中,我们已经解释了使用Cloudflare时发生WP-Cron的问题。同样,CORS错误是许多用户难以修复的另一个流行的WordPress错误。

    在本文中,我们将探讨什么是CORS以及如何修复WordPress中的CORS错误。

    什么是CORS?

    CORS代表跨域资源共享。默认情况下,Web浏览器使用同源安全策略允许源自同一服务器的所有请求。以下是来自Wikipedia的同源策略的精确定义:

    根据该政策,网络浏览器允许包含在第一个网页中的脚本访问第二个网页中的数据,但前提是两个网页具有相同的来源。——维基百科

    现在您可以轻松理解跨域的目的。它允许您从另一个域或服务器成功加载脚本和其他资源。下面是一张来自MDN的精美图片,解释了同源请求和跨源请求的概念。

    CORS跨域资源请求示意图

    CORS示例和查看错误

    假设您正在打开一个页面https://site1.com/page1 ,该页面具有嵌入式JavaScript并从https://site2.com/page2调用它。CORS会告诉浏览器站点1是否允许来自站点2的跨域请求。否则,浏览器将阻止该请求并在控制台中显示与CORS相关的错误。

    CORS的最佳示例是在您的网站上使用来自第三方域的广告脚本。如果您在服务器上不允许CORS,Chrome、Firefox、Safari和Edge等浏览器将阻止广告脚本。当您看到页面上没有加载广告或任何其他输出时,右键单击页面并选择“检查”选项。这将打开浏览器的开发者控制台并转到“控制台”部分。

    您将看到显示403401状态代码或没有状态代码的错误的不同类型的错误。例如,下面是谷歌浏览器中显示的控制台错误,错误清楚地表明“Access to XMLHttpRequest at ‘……’ from origin ‘…..’ has been blocked by CORS policy”。您还可以看到错误旁边的原因,指出“The  ‘Access-Control-Allow-Origin’ header has a value ‘…..’ that is not equal to the supplied origin.”

    Google Chrome中的CORS错误

    Google Chrome中的CORS错误

    在Mac Safari浏览器中打开同一页面时,将显示不同的错误,如下所示。它将错误显示为“Origin ‘….’ is not allowed by Access-Control-Allow-Origin. Status code: 401”。您还可以看到诸如“XMLHttpRequest cannot load ‘…..’ due to access control checks”之类的错误。

    Safari浏览器中的CORS错误

    Safari浏览器中的CORS错误

    每当您看到与访问控制检查相关的控制台错误时,您可以放心地假设它们与CORS问题有关。结果,您的脚本将无法加载,您将看不到页面上的广告或预期结果。

    修复WordPress中的CORS错误

    现在您了解了什么是CORS以及如何在浏览器控制台中查找相关错误。下一步是修复错误,以便您的页面在浏览器上加载时不会出现任何错误。简单来说,您必须在.htaccess文件中添加以下代码,以允许在您的服务器上进行跨域资源共享。

    Access-Control-Allow-Origin: *
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Origin: *

    根据场景,您可以通过三种不同的方式实现此目的。

    1. 允许所有站点

    这是允许CORS的最常见方式。如果您想在您的站点上允许任何第三方服务器请求,请在您的htaccess文件中添加以下代码。* 用作允许任何第三方域的通配符。

    <ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: *
    </ifModule>
    <ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: *
    </ifModule>
    <ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: *
    </ifModule>

    2.允许特定域

    不建议使用上述方法,因为任何劫持者都可能在您的网站上注入恶意脚本文件并造成麻烦。正确的做法是只允许来自您需要的域的跨域资源共享。您可以将 * 替换为域的名称,如下所示:

    <ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: https://site2.com
    </ifModule>
    <ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: https://site2.com
    </ifModule>
    <ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: https://site2.com
    </ifModule>

    不幸的是,这并不容易,因为您需要服务器端编码来验证标头访问控制中允许的域。因此,许多WordPress用户使用选项 #1,因为它不需要任何额外的编码。

    3.允许来自所有服务器的特定文件

    最后一个选项是限制您要允许来自第三方服务器的文件类型。为此,您可以使用以下代码指示htaccess文件中允许的文件类型。

    <IfModule mod_headers.c>
    <FilesMatch “.(png|css|js)$”>
    Header set Access-Control-Allow-Origin: *
    </FilesMatch>
    </IfModule>
    <IfModule mod_headers.c>
    <FilesMatch “.(png|css|js)$”>
    Header set Access-Control-Allow-Origin: *
    </FilesMatch>
    </IfModule>
    <IfModule mod_headers.c>
      <FilesMatch ".(png|css|js)$">
        Header set Access-Control-Allow-Origin: *
      </FilesMatch>
    </IfModule>

    此代码将允许来自任何服务器的PNG图像、CSS和JS文件。您可以添加字体和其他图像文件类型以允许它们在CORS中使用。

    其他注意事项

    在WordPress中允许跨域资源共享时,您可能需要注意一些额外的注意事项。

    • 一些托管公司需要您禁用他们的缓存才能使CORS正常工作。例如,如果您在SiteGround上,则需要在“站点工具 > 速度 > 缓存”部分下禁用NGINX直接交付。
    • 当使用Cloudflare或任何其他具有缓存设置的CDN时,您可能需要完全清除缓存,以使更改从源服务器中反映出来。
    • 在使用HTTP和HTTPS协议时,CORS也会产生问题。这通常会在浏览器控制台中显示为混合内容错误,您需要在您的站点上强制使用HTTPS以阻止其他协议。
    • 另一个考虑是从子域向主域提供静态资源和其他资源。这将完美地工作,因为子域和主域通常都在同一个源服务器上。但是,根据服务器上的设置,它也可能会产生问题。您可以通过特别提及子域来解决此问题,如上面选项 #2 中所述。
  • 如何修复WP Rocket移除未使用CSS功能无效问题

    错误类型:
    其他错误
    错误名称:
    WP Rocket删除未使用CSS功能不工作问题
    英文名称:
    WP Rocket Remove Unused CSS Not Working Issue
    错误描述:
    由于IP拦截、定时任务无效、安全插件等因素,导致WP Rocket插件中的删除未使用CSS功能无效的错误。

    修复WP Rocket删除未使用的CSS不工作的问题

    WP Rocket是最流行的WordPress网站缓存插件。仅作为高级版,它们支持超过200万个网站,以加快和改善页面加载时间。

    在您的站点上安装并激活后,该插件将自动缓存内容并减少手动配置所需的大量手动工作。

    但是,删除未使用的CSS是一个beta功能,可能会给您带来问题。如果您坚持并且无法使用删除未使用的CSS功能,这里有一些您可以尝试解决问题的想法。

    了解使用和未使用的CSS

    早些时候,速度优化主要集中在延迟页面加载的JavaScript文件上。然而,谷歌的Core Web Vital完全改变了情况,现在的重点是改善用户体验,最终应该会提高速度。为此,您必须通过删除在首屏内容下方加载所需的不必要代码来优化网站每个页面的首屏内容。

    例如,您可能会在页面底部显示一个漂亮的时事通讯小工具。但是您用于此小工具的插件或主题将加载页面标题部分所需的CSS文件。传统上这很好,因为CSS文件总是包含在标题部分中。现在,专注于用户体验,Google PageSpeed Insights会在初始加载页面时警告您有未使用的CSS。问题是您需要开发人员或后端技能来手动分析above the fold并将未使用的CSS推迟到以后加载。当您有不同的页面布局(如文章、页面、WooCommerce产品和自定义文章类型)时,这将更加复杂。您必须分析站点上的每个页面并删除未使用的CSS,而WP Rocket只需在管理仪表盘中单击几下即可完成此操作。

    删除未使用的CSS的好处

    它只是减少了CSS文件,从而减少了对服务器的HTTP请求的页面大小。除此之外,删除未使用的CSS将有助于修复PageSpeed Insights工具中的以下项目。

    • 减少未使用的 CSS
    • 移除渲染阻塞资源

    由于未使用的CSS导致的渲染阻塞问题

    由于未使用的CSS导致的渲染阻塞问题

    它还可以帮助使用较小的折叠样式更快地加载最大的内容绘画。

    请记住,删除未使用的CSS本质上意味着在每个页面上仅收集和保留使用的CSS。所以,不要混淆“使用”和“未使用”这两个术语。

    如何修复WP Rocket删除未使用的CSS功能不起作用的问题?

    要删除未使用的CSS,请转到“设置 > WP Rocket > File Optimization”部分。本部分包含两个子部分,用于优化您网站上的CSS和JS文件。向下滚动并检查“CSS File”下的“Optimize CSS delivery”部分。您将找到两种优化CSS交付的方法,并且一次只能使用一个选项。

    • 删除未使用的CSS(测试版)——我们将专注于这个选项。
    • 异步加载CSS – 这是为您的页面生成关键CSS。在我们关于如何在WordPress中生成关键CSS的文章中了解更多信息。

    您可以选择“删除未使用的CSS”按钮并向下滚动到底部以保存更改。现在,该过程将运行并显示一个进度条,如下所示。

    删除WP Rocket中未使用的CSS进程

    删除WP Rocket中未使用的CSS进程

    在3.11.x版本中,WP Rocket人员更改了删除未使用的CSS工作的方式,并弄乱了WooCommerce的操作调度程序和日志。这将使操作调度程序表的大小以GB为单位增长。您可以更新到他们的最新版本来解决这个问题并手动删除不必要的表条目。现在,该插件将首先为主页生成使用的CSS,然后每60秒处理每100个URL。

    WP Rocket处理或使用的CSS

    WP Rocket处理或使用的CSS

    您将在仪表盘中看到指示服务正在运行并处理您的页面的消息。

    删除在后台运行的未使用的CSS

    删除在后台运行的未使用的CSS

    使用WP Rocket删除未使用的CSS的问题

    在WP Rocket中使用此功能时,您可能面临或需要了解三个主要挑战:

    • 第一个问题是很多时候进度条会卡在中间,这个过程永远不会完成。由于这是一个后台进程,即使您离开设置页面,它也会继续运行。使用最新版本时,不会向用户显示该过程已完成。几天后我们与Google PageSpeed进行了检查,仍然发现警告正在显示,而WP Rocket没有任何消息是否完成工作。
    • 其次,在成功构建使用过的CSS样式后,您可能会发现布局突然被破坏。这是由于您在网站上进行的手动更改或WP Rocket本身的自动操作。
    • 第三,即使使用最新版本的插件,WP Rocket表(如下面第5点所述)仍将继续增长。
    • 最后,很少有特定的元素会损坏,而其他部分会正确加载。您可以在排除列表中为那些损坏的元素添加CSS选择器或样式表URL以解决问题。

    让我们解释涵盖上述两个问题的所有可能情况以及可能的修复。

    1、云服务慢

    WP Rocket使用他们的云服务器运行删除未使用的CSS进程。这确实是一个复杂的过程,总结如下:

    • 从您的每个页面收集所有CSS/JS文件。
    • 发送到他们的云服务器以处理文件并识别CSS选择器。
    • 收集的CSS样式将与页面的HTML进行比较,并分类为已使用或未使用。
    • 将已使用和未使用的CSS存储在数据库表中。
    • 最后,使用的CSS将被内联检索以修复PageSpeed Insights问题。

    因此,当您拥有数千个页面和不同的文章类型时,可能需要很长时间。有时,他们的云服务永远不会响应,导致进度条长时间停留在相同的百分比。此外,您的请求将在队列中提交,所需时间取决于队列中已处理的请求数量。如前所述,WP Rocket支持超过200万个站点,并且使用的CSS生成过程会在每个站点上30天后自动运行。因此,您的请求有可能在队列中并且需要时间。

    您可以在这里做的是简单地禁用该选项并保存您的更改。等待一段时间,然后再试一次,看看是否有效。避免,不断切换此功能以防止向处理队列发送多个请求。它只会进一步延迟该过程,并且不会帮助您快速完成。如前所述,现在他们通过每60秒自动处理100个URL来控制此计划。但是,用户端不会停止打开或关闭该功能。因此,请避免打开和关闭此功能,并等待一段时间检查结果。

    2.允许WP Rocket IP地址

    WP Rocket云服务器IP地址为135.125.83.227。在极少数情况下,您可能会拦截此IP,这将导致CSS生成过程失败。请记住,您可以拦截IP范围,例如 135.*.*.* 或 135.125.*.* 或 135.125.83.*。在所有这些情况下,该过程都会失败,您需要删除IP拦截才能访问他们的服务器。

    3. 启用Cron作业

    如前所述,删除未使用的CSS进程将使用默认的WordPress cron作业 (WP-Cron) 在后台运行。该过程将在有人访问该页面的60秒后运行,并且每30天自动重新构建使用的CSS样式。所有这些都使用WP-Cron并确保您没有在您的网站上禁用此功能。许多用户和开发人员禁用了WordPress中的默认WP-Cron,因为它会减慢管理部分的速度。在这种情况下,您可以设置自己的cron作业以确保WP Rocket可以使用它。

    如果您感到困惑,有一个WP-Cron Status Checker插件可以帮助您通知cron在您的站点上不工作。该插件将每24小时运行一次,以检查您网站上运行的WP-Cron的状态。在自己的cron作业和插件检查的情况下,您需要了解频率会影响您的CSS生成过程。当您怀疑cron没有在您的站点上运行时,首先确保它可以正常工作,然后再尝试在WP Rocket插件的设置页面中启用删除未使用的CSS选项。

    您还可以咨询您的托管公司,以确认WP-Cron正在运行并且没有在您的站点上被禁用。如果您使用Cloudflare,请了解有关解决使用Cloudflare导致WP-Cron不工作问题的更多信息。

    4. 更新后清理使用的CSS

    当您启动该过程时,WP Rocket将立即开始显示一个用于清除已使用CSS的新菜单项。您可以在“WP Rocket > Clear Used CSS”下的顶部管理栏中看到这一点。单击此菜单将从数据库表中删除所有存储的使用过的CSS样式。

    清除使用的CSS

    清除使用的CSS

    • 在更改主题、安装添加样式的附加插件、使用主题面板或定制器手动添加CSS时,您应该删除使用的CSS。否则,您将看到布局损坏,表明您使用的CSS无法正常工作。在这种情况下,CSS生成将自动运行,并且没有选项供您验证是否成功完成。因此,在WP Rocket中使用删除未使用的CSS选项时,请确保经常测试您的网站。否则,由于您的操作或 WP Rocket 插件的自动 CSS 重建,布局会突然中断。
    • 当您在生成CSS时卡在进度条(或发现错误出现在Google PageSpeed中)时,请先清除您使用的CSS并禁用优化CSS交付选项。验证上述第2点和第3点并等待一段时间再重试。虽然重新构建CSS可能需要额外的时间,但它有助于确认您方面没有问题。

    5. 清空后端WP Rocket表

    仅在WP Rocket中启用删除未使用的CSS功能并不止于此。它可以随时通过更新产生问题,您可以使用“清除未使用的CSS”并重建已使用的CSS,如上面第4点所述。但是,由于WP Rocket创建的大型后端表,可能会发生问题。WP Rocket将创建两个数据库表,您可以使用 phpMyAdmin、Adminer或任何其他数据库管理工具检查它们。

    • wp_ wpr_rucss_resources – 所有CSS和JS文件(WP Rocket每30天检查一次并从该表中删除未使用的CSS)
    • wp_wpr_rucss_used_css – 使用的CSS

    当您的主题或插件使用许多CSS和JS文件时,资源表可能会很大。同样,当您为移动设备启用单独的缓存时,使用的CSS表会快速增长。尽管您不会在PageSpeed中看到减少未使用的CSS警告,但较大的表格大小将直接影响您网站的性能。您可以查看在GitHub中针对该主题打开的问题。以下是那里注册的投诉之一,提到由于此问题,数据库大小从8MB变为800MB。

    GitHub中WP Rocket删除未使用的CSS问题

    GitHub中WP Rocket删除未使用的CSS问题

    这个问题可能是由于页面构建器插件(如Elementor)、动态广告脚本和为单个页面使用自定义CSS的主题而发生的。这里的解决方案是禁用单个页面上的动态内容或手动清空数据库表,以便插件重新构建。您只需单击MySQL数据库表中的“清空”选项并确认弹出窗口即可删除其内容。

    空数据库表内容

    空数据库表内容

    请注意,当您从设置中停用删除未使用的CSS功能时,WP Rocket不会删除这些表条目。如果您决定从您的网站中删除它,请查看我们关于如何完整删除WP Rocket插件的教程。

    6. 检查您的安全插件

    尝试启用删除未使用的CSS功能时,您的安全插件可能会拦截WP Rocket服务器。通常,安全插件应用防火墙来保护站点免受恶意攻击。它可能会拦截WP Rocket并停止使用的CSS生成过程。因此,当您发现删除未使用的过程不起作用时,请禁用您的防火墙设置并再次检查。如果可行,那么您可以在防火墙设置中将WP Rocket服务列入白名单。

    像Wordfence这样的插件提供了一种学习模式来运行任何所需的操作,以便插件在您以后启用防火墙设置时学习并且不会阻止请求。但是,该过程可能会根据您使用的安全插件而有所不同,您可能需要咨询插件开发人员以修复防火墙问题。

    7. 使用CSS安全列表

    这是一个不同的问题,因为该过程将在设置页面中完成,但由于删除CSS样式,您的网站布局将被破坏。例如,当您删除未使用的CSS时,WP Rocket将使用搜索和过滤功能破坏数据表。

    • 在这种情况下,右键单击页面并在Developer Tools中检查损坏的元素。
    • 找到元素所需的CSS样式表。
    • 通过排除域名粘贴CSS文件的URL。
    • 保存您的更改并重新生成使用过的CSS。

    假设您发现以下URL引起了问题:

    https://yoursite.com/wp-content/plugins/my-plugin/css/123.css
    https://yoursite.com/wp-content/plugins/my-plugin/css/123.css
    https://yoursite.com/wp-content/plugins/my-plugin/css/123.css

    您需要在CSS安全列表框中输入以下 URL:

    /wp-content/plugins/my-plugin/css/123.css
    /wp-content/plugins/my-plugin/css/123.css
    /wp-content/plugins/my-plugin/css/123.css

    也可以像下面这样使用通配符来排除文件夹中的所有CSS文件来删除样式。

    /wp-content/plugins/my-plugin/css/(.*).css
    /wp-content/plugins/my-plugin/css/(.*).css
    /wp-content/plugins/my-plugin/css/(.*).css

    小结

    WP Rocket的人大力宣传他们的插件,称这将有助于提高Core Web Vitals和PageSpeed Insights得分。主要是删除未使用的CSS、延迟加载JS和媒体文件,您可以获得好成绩。但是,他们不会告诉你的是,当有问题时,他们不会支持你。特别是,你会遇到“删除未使用的CSS”背后如此复杂的逻辑问题。该功能多年来也处于测试阶段,但并未提醒它会构建庞大的数据库表。如果您遇到困难,请尝试上述修复并检查它是否有帮助。否则,您需要登录您的WP Rocket帐户以提出票证并等待很多天才能得到他们的回复。简而言之,您需要禁用该功能并尝试“异步加载CSS”或寻找替代选项。

    即使在使用WooCommerce操作调度程序后使用最新版本的插件,数据库表的大小仍然很大。如果这是您想要购买WP Rocket插件的唯一功能,我们强烈建议您不要购买并检查其他插件,例如Perfmatters。虽然过程与Perfmatters相同,但它不使用数据库表。相反,它将缓存存储在易于处理的单独文件夹中。

  • 如何修复Elementor未加载错误

    错误类型:
    其他错误
    错误名称:
    Elementor无法加载错误
    英文名称:
    Elementor Not Loading Error
    错误描述:
    由于Elementor或PHP未更新到较新版本,插件冲突、内存限制等,导致Elementor未能正常地加载。

    如何修复Elementor未加载错误

    使用Elementor,您可以用更直观的页面构建器替换区块编辑器。如果您是Elementor用户,则每次要创建或编辑页面时都需要加载编辑器。但是,有时错误可能会阻止Elementor加载。

    幸运的是,这个问题有几种解决方案。如果您了解导致错误的原因,您应该能够立即对其进行故障排除。

    在本文中,我们将讨论导致Elementor无法加载问题的原因并查看插件的要求。然后,我们将向您介绍几种解决此错误的方法。

    1. 为什么Elementor没有加载?
    2. Elementor要求是什么?
    3. 如何修复Elementor未加载
    4. 其他Elementor故障排除方法

    为什么Elementor没有加载?

    在我们详细了解可能导致Elementor出现问题的原因之前,重要的是要讨论“not loading”错误的含义。启动Elementor编辑器时会发生此错误。

    通常,编辑器只需要一点时间来加载:

    Elementor页面构建器加载

    Elementor页面构建器加载

    但是,如果编辑器卡在加载屏幕上,您可能正在处理错误。请注意,这与编辑器无法完全加载或获取HTTP代码不同。在这种情况下,除了Elementor无法加载之外,您的网站应该可以正常运行。

    通常,由于您的服务器不符合插件的要求,Elementor可能无法加载。您可能还使用了导致Elementor出现兼容性问题的插件。在接下来的几节中,我们将概述Elementor的要求并向您展示如何解决未加载错误。

    Elementor有何要求?

    每个插件都有自己的系统要求。大多数插件开发人员不会发布此信息,因为他们假设每个服务器都可以满足他们的最低要求。通常,情况就是这样。

    一些插件(例如页面构建器和安全工具)往往具有特定的系统要求。在Elementor的情况下,这些是最低要求(不包括存储空间):

    • WordPress 5.2或更新版本
    • PHP 7或更新版本
    • MySQL 5.6或更新版本
    • 至少128 MB的WordPress内存限制

    在大多数情况下,即使您的服务器不满足其要求,您也可以安装插件。但是,这可能导致插件无法正常工作,并且在 Elementor 的情况下,无法完全加载编辑器。

    如何修复Elementor未加载

    如果 Elementor 卡在加载屏幕中,您要做的第一件事就是重新加载页面。再次尝试访问 Elementor 编辑器,看看错误是否仍然存在。如果是这样,是时候进行一些故障排除了。

    1.更新元素

    Elementor可能无法加载,因为您使用的是过时版本的插件。过时的插件可能会导致与其他工具或最新版本的WordPress发生冲突。

    要检查您的Elementor是否是最新的,请转到插件 > 已安装插件并查找构建器。如果您拥有高级许可证,您应该在插件列表中同时看到ElementorElementor Pro :

    更新Elementor

    更新Elementor

    如果您看到有关Elementor更新版本的通知,则需要运行必要的更新。然后,再次尝试访问编辑器。

    2. 检查插件冲突(和测试Elementor附加组件)

    插件之间引起冲突的情况并不少见。当您有多个提供重叠功能或冲突代码的插件时,通常会发生这种情况。

    诊断插件冲突可能是一个挑战。最好的办法是逐个测试插件,看看是否有任何插件导致Elementor无法加载。理想情况下,您将使用临时网站来执行此操作 ,因为禁用关键插件会影响您网站的功能。

    要开始使用,请转到插件 > 已安装插件。然后,您需要在活动插件列表中逐一禁用它们。禁用每个插件后,尝试重新加载Elementor编辑器以查看它是否正常工作。

    您还需要特别注意Elementor附加插件。这些附加组件扩展了页面构建器的功能和小工具库:

    注意Elementor附加组件

    注意Elementor附加组件

    如果在加载Elementor编辑器时禁用特定插件或附加组件没有影响,您可以继续重新激活它。目标是一个一个地测试插件,看看它们是否会导致兼容性问题。

    另一种方法是一次禁用所有插件(Elementor除外)并查看编辑器是否有效。但是,我们建议不要使用这种方法,除非您使用的是临时网站。大多数WordPress网站都依赖插件来实现关键功能,因此一次性禁用它们会影响用户体验。

    3. 检查您网站的PHP版本

    正如我们之前提到的,Elementor仅支持PHP 7和更新版本。您可以从WordPress管理员检查您当前的PHP版本。

    转到工具 > 站点运行状况并选择信息选项卡。在这里,您将找到有关您网站的一些技术信息。如果您打开服务器选项卡,您将能够检查您的服务器使用的PHP版本:

    检查PHP版本是否合适

    检查PHP版本是否合适

    理想情况下,您会看到PHP 7或8。但是,您可以通过主机控制面板更新您的PHP版本 ,具体取决于您的提供商。

    如果您的托管服务提供商不允许您直接切换PHP版本,我们建议您联系支持团队。如果需要,他们应该能够帮助您更新它。如果您的网络主机不支持较新版本的PHP,则可能是时候迁移到其他提供商了。

    4.检查您网站的内存限制

    您网站的PHP内存限制定义了整个WordPress安装可以使用多少RAM。低内存限制将阻止许多插件正常工作。

    正如我们之前提到的,Elementor的最低系统要求为128 MB内存。如果您不确定站点的内存限制是多少,您可以转到工具 > 站点运行状况并选择信息选项卡来检查它。然后,打开服务器选项卡并查看PHP内存限制条目:

    检查您的PHP内存限制

    检查您的PHP内存限制

    大多数现代Web主机将提供128-256 MB作为PHP内存限制基线。如果您使用WordPress托管服务器,则该数字可能为256MB。

    如果您正在处理较小的数字,您可以尝试 手动增加P​​HP内存限制。最简单的方法是通过FTP。

    首先通过FTP或SFTP连接到您的网站并找到WordPress根文件夹。这通常被命名为www、publicpublic_html

    找到文件夹后,打开它并查找wp-config.php文件:

    找到wp-config文件

    找到wp-config文件

    使用文本编辑器打开wp-config.php文件并查找以下行:

    define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
    define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
    define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
    
    

    根据您服务器的内存限制,该数字可能会更低。如果找不到该行,可以手动添加。但是,请确保您没有编辑wp-config.php文件中的任何其他条目。您还需要在以下行之前添加该代码:

    /* That’s all, stop editing! Happy blogging. */
    /* That’s all, stop editing! Happy blogging. */
    /* That’s all, stop editing! Happy blogging. */

    从技术上讲,您可以摆脱小于256MB的内存限制,但您也可以尝试设置更高的内存限制。但是,根据我们的经验,256MB是PHP内存的最佳选择。

    完成后,保存更改并关闭文件。现在,再次检查站点健康页面,看看WordPress是否识别出PHP内存限制的变化。

    在某些情况下,您的Web主机可能不允许您手动更改PHP内存限制。这意味着您需要联系支持团队,看看他们是否可以为您做这件事。

    5.切换Elementor的Loader方法

    Elementor包含一个内置功能,可让您更改插件加载编辑器的方式。更改 Elementor 加载器方法不应以任何方式影响您,但如果没有其他故障排除方法有效,我们建议将其作为最后的手段。

    要更改Elementor加载方法,请转到Elementor > 设置 > 高级。然后,查找Switch Editor Loader Method设置并选择Enable:

    更改Elementor加载方法

    更改Elementor加载方法

    保存您的更改并尝试再次加载编辑器。Elementor not loading错误现在应该消失了。

    其他Elementor故障排除方法

    如果您在使用Elementor时遇到任何技术问题并且不确定如何继续,您可以使用其他一些故障排除方法。让我们来看看它们。

    切换主题

    大多数流行的WordPress主题都使用主要的页面构建器插件进行了测试。但是,我们建议您查看每个主题的描述,以确保它提到与Elementor的兼容性。

    如果您当前的主题对Elementor不友好,则更新主题可能会解决页面构建器的问题。无论如何,切换主题只需要一分钟,因此如果您在使用Elementor时遇到问题,值得一试。

    禁用浏览器加载项

    在某些情况下,浏览器加载项可能会导致逐页出错。例如,您可以使用阻止脚本的附加组件,或将自定义代码添加到特定网站的扩展。

    在尝试使用Elementor时,其中一些附加组件可能会导致问题。检查是否是这种情况的一种快速方法是尝试在干净的浏览器安装中使用Elementor。

    如果错误消失,您需要缩小导致问题的浏览器扩展的范围。这意味着在您确定罪魁祸首之前,一一禁用扩展。

    小结

    如果您依赖Elementor来构建和更新您的网站,则无法加载编辑器可能会对您的计划造成重大影响。编辑器无法加载的原因有多种,但通常与系统要求或插件兼容性问题有关。

    以下是如何逐步解决Elementor未加载错误的方法:

    1. 更新Elementor。
    2. 检查插件冲突(并测试Elementor附加组件)。
    3. 检查您网站的PHP版本。
    4. 检查您网站的内存限制。
    5. 切换Elementor的loader方法。
  • 如何排查解决WordPress中的“Googlebot cannot access CSS and JS files”错误

    错误类型:
    其他错误
    错误名称:
    Googlebot不能访问CSS和JS文件
    英文名称:
    Googlebot cannot access CSS and JS files
    错误描述:
    由于Robots.txt规则限制,可能导致Googlebot不能访问CSS和JS文件。

    “Googlebot cannot access CSS and JS files”错误

    本文概述了如何解决WordPress网站的 “Googlebot cannot access CSS and JS files” 错误,即Googlebot无法访问CSS和JS文件。

    Google网站管理员工具提示包含指向有关如何修复错误的说明的链接,但这些说明对用户不是很友好。这就是为什么我将向您展示如何修复 “Googlebot cannot access CSS and JS files” 错误。

    "Googlebot cannot access CSS and JS files" 错误截图

    为什么Googlebot需要访问CSS和JS文件?

    回答问题的最佳方式始终是理解答案。

    Google更喜欢对用户友好的网站进行排名:加载速度快、提供良好用户体验等的网站。为了确定网站的用户体验,Google需要访问该网站的CSS和JavaScript文件

    默认的WordPress设置不会阻止搜索机器人访问任何CSS或JS文件。但是,一些网站所有者可能会在添加额外的安全措施(例如安全插件)后阻止搜索机器人。

    修复WordPress中的“Googlebot cannot access CSS and JS files”错误

    选项 1:手动编辑WordPress Robots.txt文件

    什么是WordPress Robots.txt?

    当机器人抓取您的网站并希望将其编入索引时,它们会首先按照您的robots.txt文件中的说明进行操作。

    该文件指导机器人索引或不索引您网站的任何页面。如果您正在运行WordPress,您将在根目录中找到Robots.txt文件

    如何为Googlebot编辑Robots.txt

    如果您想修复Googlebot无法访问CSS和JS文件错误,您的robots.txt文件应包含站点地图和其他一些项目

    WordPress Robots.txt文件很容易理解。

    User-agent: *
    Disallow: /wp-admin/
    Disallow: /wp-includes/
    Disallow: /wp-content/plugins/
    Disallow: /wp-content/themes/
    Allow: /wp-includes/js/
    User-agent: *
    Disallow: /wp-admin/
    Disallow: /wp-includes/
    Disallow: /wp-content/plugins/
    Disallow: /wp-content/themes/
    Allow: /wp-includes/js/
    User-agent: *
    Disallow: /wp-admin/
    Disallow: /wp-includes/
    Disallow: /wp-content/plugins/
    Disallow: /wp-content/themes/
    Allow: /wp-includes/js/

    Disallow: /folder 表示该文件夹不会被Googlebot抓取。

    Allow: /folder 表示该文件夹将被Googlebot抓取。

    要修复WordPress中的“Googlebot无法访问CSS和JS文件”错误,您需要允许Googlebot抓取存储CSS和JS文件的文件夹。

    大多数情况下,删除以下行将解决问题: Disallow: /wp-includes/

    之后,保存您的robots.txt文件并上传。然后在Google工具中点击 “fetch and render”。现在比较fetch结果,你应该看到很多被阻塞的资源将不再被阻塞。

    某些用户可能会遇到他们的robots.txt文件为空或根本不存在的情况。如果发生这种情况,Googlebot会自动抓取所有文件并将其编入索引

    使用插件编辑Robots.txt文件

    (1)使用Yoast编辑robots.txt文件

    使用Yoast SEO制作或编辑robots.txt文件要容易得多。为此,请按照以下步骤操作。

    第 1 步:访问您的WordPress网站并登录。

    登录后,您的帐户将出现在您的“仪表盘”中。

    第 2 步:点击 “SEO” 选项卡。

    屏幕左侧有一个搜索栏。从该菜单中选择 “SEO”。

    第 3 步:然后,点击 “Tools”。

    您将在SEO设置中找到其他选项。点击 “Tools“。

    Yoast插件工具

    第 4 步:然后,点击 “File Editor”。

    Yoast文件编辑器

    您只需删除 “Disallow: /wp-includes/” 行并单击 “save changes to robots.txt”。

    使用Yoast编辑robots.txt文件 (2)使用SEOPress编辑robots.txt文件

    第 1 步:转到SEO选项卡。

    第 2 步:选中与机器人关联的绿色单选按钮。

    第 3 步:通过单击管理启用robots.txt虚拟文件。

    第 4 步:将您的robots.txt文件写入Virtual Robots.txt并保存。

    确保删除“Disallow:/wp-includes/ ”行

    如果您想查看您的robots.txt文件,请单击查看您的robots.txt或转到“yoursite.com/robots.txt”

    (3)使用Rankmath编辑robots.txt

    在Rankmath上,robots.txt文件是可编辑的,如下所示:

    使用Rankmath编辑robots.txt

    同样,需要删除 “Disallow: /wp-includes/” 行

    希望本文能帮助您修复WordPress网站上的 “Googlebot cannot access CSS and JS files” 错误。

    小结

    Robots.txt是网站控制搜索引擎蜘蛛访问权限的重要文件,您可以进一步深入了解Robots.txt。您也可以通过robots.txt工具,校验您的网站的robots.txt所包含的规则是否符合标准。

    “Googlebot cannot access CSS and JS files” 错误是件小事情,但如果未能及时处理,可能会导致您的网站被Google收录受限。幸运的是,通过上面的介绍,我们轻松解决问题!

  • 如何修复WordPress中的“The Link You Followed Has Expired”错误

    错误类型:
    服务器错误
    错误名称:
    您点击的链接已过期
    英文名称:
    The Link You Have Followed Has Expired
    错误描述:
    此错误一般是由于WordPress站点文件上传和PHP内存限制导致!

    如何修复WordPress中的“The Link You Followed Has Expired”错误

    您是否在WordPress中看到一条错误消息,上面写着“The Link You Have Followed Has Expired”?这是您在使用该平台时可能遇到的最典型的WordPress问题之一。

    当您尝试上传的文件超出WordPress的默认上传和执行限制时,通常会出现此问题。增加默认上传限制是使用以下方法之一解决问题的最佳方法。

    本文的目的是向您介绍如何修复WordPress中的“The Link You Followed Has Expired”错误。我还将向您解释导致此错误的原因以及将来如何防止它。

    为什么会出现“The Link You Followed Has Expired”错误?

    从WordPress管理区域将WordPress主题或插件上传到您的网站时,“The Link You Followed Has Expired”错误很常见。WordPress托管公司的默认设置限制了您可以通过WordPress管理面板上传的文件的大小。如果您尝试上传大于正常限制的主题文件,您将收到此错误消息。

    The Link You Have Followed Has Expired

    此外,根本问题是缺乏对这个错误的描述。错误通知提供的有关错误的信息很少,因此初学者通常很难解决此错误。您可以随时从WordPress管理后台“工具 > 站点健康 > 信息 > 服务器”检查配置值,如下所示。

    站点健康

    您还可以快速确定可以上传的最大文件大小。为此,请导航到WordPress仪表板中的媒体 > 添加新文件;您将在“Drop files to upload”区域下看到一条备注,显示默认的WordPress文件大小限制用于上传。

    最大上传文件限制

    即使您的安装和托管有足够的上传限制,如果最大执行时间有限且其值最小,WordPress也将无法上传较大的文件。您将收到一条错误消息,指出您所访问的链接在这些情况下已过期。

    如上所述,WordPress的上传大小限制通常在服务器上设置,因此很遗憾,您无法从WordPress本身更改设置。

    出于安全和效率的原因,存在限制。 这可以防止用户上传大量视频并使您的服务器超载。

    修复“The Link You Followed Has Expired”错误

    修复“The Link You Followed Has Expired”错误的最快方法是增加网站的文件上传和PHP内存限制。

    有很多方法可以做到这一点。我将介绍所有这些,因此您可以选择最适合您的托管环境的一种。

    方法一:增加functions.php文件的限制

    这种方法更简单,但有一个负面影响。如果您更改主题,您的网站将恢复到以前的限制。

    如果您打算更改主题,请考虑使用下面列出的其他两种方法之一。

    在您的WordPress主题的functions.php文件中包含以下代码:

    @ini_set( ‘upload_max_size’ , ‘120M’ );
    @ini_set( ‘post_max_size’, ‘120M’);
    @ini_set( ‘max_execution_time’, ‘300’ );
    @ini_set( ‘upload_max_size’ , ‘120M’ );
    @ini_set( ‘post_max_size’, ‘120M’);
    @ini_set( ‘max_execution_time’, ‘300’ );
    @ini_set( 'upload_max_size' , '120M' );
    @ini_set( 'post_max_size', '120M');
    @ini_set( 'max_execution_time', '300' );

    应该增加upload/post/max_size参数以匹配您尝试上传的文件。

    将文件的max_execution_time增加到您认为上传所需的时间。

    如果不确定,请随意将该值加倍。

    方法 2:增加.htaccess文件中的限制

    WordPress中的.htaccess文件用于控制Apache(服务器)如​​何为位于根目录和子目录中的文件提供服务。

    您可以编辑 .htaccess文件以增加PHP内存限制并解决链接已过期错误。

    增加.htaccess文件中的限制

    您可以通过FTP连接到您的网站来编辑.htaccess文件。

    下载它,打开它,然后在文件末尾添加以下代码。

    php_value upload_max_filesize 128M
    php_value post_max_size 128M
    php_value max_execution_time 300
    php_value max_input_time 300
    php_value upload_max_filesize 128M
    php_value post_max_size 128M
    php_value max_execution_time 300
    php_value max_input_time 300
    php_value upload_max_filesize 128M
    php_value post_max_size 128M
    php_value max_execution_time 300
    php_value max_input_time 300

    确保在将文件上传回您的网站之前保存更改。

    方法 3:增加php.ini文件中的限制

    查找.htaccess文件并不总是那么简单。这就是为什么我会建议您使用第三种方法来修复WordPress中的链接已过期错误:php.ini 文件。

    如果你想完全避免这种情况,也不使用functions.php方法,还有另一个选择:php.ini文件。

    但请注意,如果您有共享主机计划,您可能没有php.ini文件,或者您可能无法编辑它。

    发生这种情况时,您可能想尝试在网站的根目录中创建一个空白的php.ini文件。

    找到/创建文件后,将以下代码行放入php.ini文件中:

    upload_max_filesize = 100M
    post_max_size = 100M
    max_execution_time = 300
    upload_max_filesize = 100M
    post_max_size = 100M
    max_execution_time = 300
    upload_max_filesize = 100M
    post_max_size = 100M
    max_execution_time = 300

    保存更改并上传回php.ini文件后,您的错误应该会得到解决!

    方法 4:更新PHP版本

    如果您使用过时的PHP版本,您的网站上可能会出现“The Link You Have Followed Has Expired”的问题。如果WordPress与您的PHP版本不兼容,您将很难保持网站正常运行。

    如果您使用的宝塔管理面板,安装和切换PHP版本是一件非常容易的事情。

    您可以阅读PHP版本升级教程,深入了解详细的步骤。

    小结

    如果您有一个WordPress网站,在某个时间点遇到错误是很正常的。但是很容易解决常见错误并修复它们。要解决“您关注的链接已过期”错误,您可以选择编辑functions.php文件并增加PHP资源。如果您不希望向您的站点添加任何额外的代码,您可以使用 .htaccess 方法。

    或者,php.ini技术同样简单快捷;但是,如果遇到 PHP 兼容性问题,您应该更新到最新的 PHP 版本以获得最佳结果。最后,如果这些方法都不能让您感到舒服,请联系您的托管公司并要求他们为您修复它。

    通过WordPress管理面板上传大文件的问题应该通过使用本文中提到的方法增加PHP资源来解决。

  • 如何修复WordPress中的Pluggable.php文件错误

    错误类型:
    PHP错误
    错误名称:
    Pluggable.php文件错误
    英文名称:
    Pluggable.php File Errors
    错误描述:
    如果插件或片段未能正确处理Pluggable.php文件的相关函数,可能会产生PHP错误。

    如何修复WordPress中的Pluggable.php文件错误

    Pluggable.php错误是您在WordPress中可能遇到的更令人费解的错误之一。

    最常见的是,当您打开主题或插件时会发生这种情况,但每当您尝试添加代码片段时,您也可能会遇到pluggable.php错误。

    基本上,pluggable.php错误的原因是新函数可能无法覆盖默认的WordPress函数。

    pluggable.php是WordPress的核心文件之一,这意味着存在与该文件的自然行为相冲突的其他内容(很可能是插件或代码片段)。

    尽管错误很少发生,但一旦发生,就会产生严重的后果。Pluggable.php错误会破坏您的网站,导致白屏和无法访问您网站的后端或前端。

    在本文中,我将向您解释如何解决此错误。

    Pluggable.php文件错误是什么样的?

    一些WordPress的核心功能可以被用户或插件覆盖。这些函数可以在pluggable.php文件中找到。

    如果插件或片段未能正确处理其中一个函数,则会出现此错误:

    Warning: Cannot modify header information – headers already sent by (output started at /home/username/mysite/wp-content/themes/mytheme/functions.php:103) in /home/username/mysite/wp-includes/pluggable.php on line 892
    Warning: Cannot modify header information – headers already sent by (output started at /home/username/mysite/wp-content/themes/mytheme/functions.php:103) in /home/username/mysite/wp-includes/pluggable.php on line 892
    Warning: Cannot modify header information – headers already sent by (output started at /home/username/mysite/wp-content/themes/mytheme/functions.php:103) in /home/username/mysite/wp-includes/pluggable.php on line 892

    手动排除Pluggable.php文件错误

    pluggable.php文件是一个核心的WordPress文件。当您有指向WordPress核心文件的错误时,首先编辑它绝不是一个好主意。

    该错误很可能来自不同的位置。

    要修复任何pluggable.php文件错误,请在错误消息中查找对它的第一个引用。

    在上面的例子中,可以在主题的functions.php文件中找到错误,第103行。不在pluggable.php文件中。

    您的主题的functions.php文件需要编辑,导致此错误的代码需要替换或删除。

    php ?> 标记后面的额外空格可能会导致标头已发送错误。因此,只需删除多余的空间,在大多数情况下错误就会消失。

    请注意,此错误也可能来自与pluggable.php文件冲突的插件

    Warning: Cannot modify header information – headers already sent by (output started at /home/username/mysite/wp-content/plugins/plugin-name/blabla.php:122) in /home/username/mysite/wp-includes/pluggable.php on line 892
    Warning: Cannot modify header information – headers already sent by (output started at /home/username/mysite/wp-content/plugins/plugin-name/blabla.php:122) in /home/username/mysite/wp-includes/pluggable.php on line 892
    Warning: Cannot modify header information – headers already sent by (output started at /home/username/mysite/wp-content/plugins/plugin-name/blabla.php:122) in /home/username/mysite/wp-includes/pluggable.php on line 892

    通常你可以通过停用插件并让插件的作者知道错误来解决这个问题。

    与pluggable.php相关的错误几乎从不会由文件本身引起

    使用WP Umbrella插件修复pluggable.php

    WP Umbrella是一个用于管理、维护和监控WordPress网站的插件。该插件允许您跟踪由主题和插件生成的PHP错误。

    安装并连接后,转到WP Umbrella仪表盘。

    WP Umbrella插件PHP错误列表

    从这里,您将检索网站上由主题和插件生成的所有PHP错误。

    牢记,不应该编辑pluggable.php文件,因为它是WordPress核心文件的一部分! 幸运的是,错误消息描述了哪些插件或主题文件与pluggable.php以及哪一行代码冲突。

    确定后,单击与pluggable.php相关的错误以获取帮助您解决问题的额外信息。如果您自己无法修复错误,您可以停用插件或将信息发送给插件/主题的支持。

    小结

    pluggable.php错误完美地说明了您应该尝试在您的网站上安装尽可能少的插件。

    WordPress目录中可用的大多数插件和主题当然是安全的,不会破坏您的网站。

    但是,每次您在网站上插入新内容时,都会增加服务器要处理的PHP请求数量。

    这可能会增加您的页面加载时间并在您的网站上打开安全漏洞。

    识别向您的网站发送垃圾邮件的插件的最佳方法是使用WP Umbrella等解决方案对其进行监控。

  • 如何解决WordPress网站提示Failed to Open Stream错误

    错误类型:
    PHP错误
    错误名称:
    打开数据流失败
    英文名称:
    Failed to Open Stream
    错误描述:
    当WordPress无法加载您的网站代码中提到的文件时,会发生此错误。

    如何解决WordPress网站提示Failed to Open Stream错误

    您是否在WordPress中看到Failed to Open Stream错误?这种性质的错误消息通常指示发生错误的脚本的位置,但初学者用户可能很难理解它。

    在本文中,我们将向您展示如何轻松修复WordPress网站Failed to Open Stream错误。

    为什么会出现Failed to Open Stream错误?

    WordPress的“Failed to Open Stream”错误是由许多因素引起的,这些因素在尝试解决问题之前值得调查。

    当WordPress无法加载您的网站代码中提到的文件时,会发生此错误

    发生此错误时,某些WordPress站点将继续加载并显示警告消息,而其他WordPress站点可能会显示致命错误并且不会加载任何内容。

    根据代码中发生错误的位置和失败的原因,消息的措辞会有所不同。

    错误消息通常如下所示:

    Warning: require(/mysite/wp-includes/file.php): failed to open stream: No such file or directory in /mysite/wp-settings.php on line 32
    Warning: require(/mysite/wp-includes/file.php): failed to open stream: No such file or directory in /mysite/wp-settings.php on line 32
    Warning: require(/mysite/wp-includes/file.php): failed to open stream: No such file or directory in /mysite/wp-settings.php on line 32
    

    以下是如何解决和修复WordPress中的“Failed to Open Stream”错误。

    修复WordPress中Failed to Open Stream错误

    我们之前讨论过,错误可能由多种原因引起,并且错误消息会根据错误是否由特定文件以及该文件的位置引起而有所不同

    “no such file or directory”消息

    搜索脚本并找出它试图访问的文件或目录。

    验证拼写。如果它是正确的,那么它可能是它被删除了。

    例如,假设您有一个调用某个插件的脚本。如果插件未正确安装,则无法同步文件。如果插件或主题似乎出现故障,请尝试删除并重新安装它。

    如果此修复不起作用,则问题可能与您的.htaccess文件有关

    使用.htaccess文件对打开流错误进行故障排除

    然后,您必须转到WordPress管理员中的设置»固定链接页面并选择“保存更改”按钮以重新生成.htaccess文件。

    重新生成.htaccess文件

    这应该可以解决Failed to Open Stream错误。如果没有,请继续阅读!

    没有权限

    当错误消息后跟“Permission denied”时,WordPress无法访问代码中引用的文件或目录。

    要解决此问题,您需要检查并更正WordPress文件和目录权限

    为此,请单击cPanel菜单下的文件管理器链接或打开您喜欢的FTP客户端。

    查找错误消息中提到的文件或目录。找到它后,右键单击它并选择“更改权限”。

    检查读取、写入和执行框是否被选中。

    在大多数情况下,这将解决问题并使一切恢复正常。

    小结

    我们希望这篇文章能帮助您修复WordPress“Failed to Open Stream”错误。要了解更多WordPress相关错误解决方案,请访问我们的WordPress错误频道

  • 如何修复Facebook分享WordPress网站文章缩略图不正确问题

    错误类型:
    其他错误
    错误名称:
    Facebook分享缩略图不正确
    英文名称:
    Facebook Incorrect Thumbnail Issue
    错误描述:
    og:image标记中设置了多个图像或者未设置图像都可能导致这个问题的出现。

    如何修复Facebook分享WordPress网站文章缩略图不正确问题

    如果您的网站面向海外用户,经常需要将内容同步分享至Facebook社交媒体时,文章缩略图不正确可能是常见错误。

    在本文中,我们将详细说明为什么Facebook可能无法正确显示正确的缩略图,以及如何解决这个常见的WordPress问题。

    Facebook未获取缩略图的原因

    Facebook在2010年引入了Open Graph标签,通过允许文章成为具有与其他Facebook对象相同功能的丰富对象来促进Facebook和其他网站之间的集成。

    它通过允许在分享页面时更好地控制信息如何从第三方网站传输到Facebook来帮助Facebook优化文章。Open Graph标签用于共享这些信息。

    因此,如果您在Facebook中的缩略图有问题,它可能来自您打开的抓图标签。例如,您可能在og:image标记中设置了多个图像,并且您的特征图像比其他图像小。

    或者您可能没有任何og:images并且Facebook可能无法检索您的缩略图。

    一旦我们知道为什么facebook没有抓取缩略图,让我们看看如何修复它!

    解决Facebook不正确的缩略图问题

    用Yoast显示缩略图

    使用Yoast SEO插件,您可以将自定义Facebook缩略图添加到每个文章或页面。

    您需要安装Yoast SEO。安装并激活该工具后,您就可以开始设置Facebook缩略图了。

    当你写一篇文章时,向下滚动到编辑器下方的Yoast SEO元框,然后选择社交标签。在底部,您将看到Facebook缩略图上传按钮。

    Yoast插件设置社交分享缩略图

    在此处上传您的图片。这应该可以解决Facebook中的缩略图问题。

    请注意,所有其他主要的SEO插件(如SEOPressImage SEO )也可以帮助Facebook正确显示您的缩略图。

    使用Facebook调试工具清除缓存

    如果您添加了正确的缩略图,但Facebook仍未显示它,则问题可能与缓存有关。

    为此,首先要清除您的网站缓存。为此,请访问您的WordPress管理后台,转到您的缓存插件并清除缓存。

    清除WP Rocket缓存

    清除WP Rocket缓存

    如果问题仍然存在,您还需要使用他们的调试工具重置Facebook中的缓存。

    要使用调试器工具,只需粘贴WordPress文章的URL。

    Facebook调试工具

    单击Scrape Again按钮,您的文章的缩略图将被更新。在某些情况下,您可能需要单击“Scrape Again”按钮两次。

    重新抓取Facebook分享缩图

    小结

    按照此过程,您将能够修复WordPress网站中不正确的Facebook分享缩略图问题。您可以查看我们的其他文章以了解各种WordPress错误及相关解决办法

  • 如何修复WordPress自动更新失败错误

    错误类型:
    WP内部错误
    错误名称:
    WordPress自动更新失败错误
    英文名称:
    WordPress auto-update error
    错误描述:
    WordPress更新失败或无法正常工作可能有多种原因,例如文件权限已更改;安全模式可能是一个原因,服务器脚本超时,PHP内存限制耗尽等。

    WordPress自动更新失败

    正在寻找一种方法来修复您网站中的WordPress自动更新错误?在本文中,我们将指导您修复网站中的WordPress自动更新错误。

    当您的WordPress无法自行更新时,这非常烦人。WordPress具有自动更新功能,可让您更轻松地更新您的网站。它将在后台更新WordPress的新版本。发布重大更新时,它会显示一条通知,然后您只需单击一下即可对其进行更新。

    更新WordPress非常重要,因为过时的网站不是很安全。每次更新都会修复错误并优化新特性和功能。它还提高了网站的安全性。当WordPress无法自动更新时,它会显示一个错误。

    为什么WordPress自动更新失败?

    WordPress更新失败或无法正常工作可能有多种原因,例如文件权限已更改;安全模式可能是一个原因,服务器脚本超时,PHP内存限制耗尽等。

    修复WordPress自动更新错误

    这个错误有几个原因。当您遇到此错误时,您需要找出导致错误的原因,然后您需要采取相应的措施。

    删除.maintenance文件

    有时,当WordPress无法自我更新时,它会将您锁定在您的网站之外。您将无法访问您的网站管理仪表板。当用户访问您的网站时,他们会看到类似“Briefly unavailable for scheduled maintenance”的消息。发生此错误是因为当WordPress尝试自我更新时,它会打开您的网站维护模式。更新失败,因此您的网站陷入维护模式。

    Briefly unavailable for scheduled maintenance

    维护模式存储在.maintenance文件。因此,您需要找到该文件并将其删除。为此,您需要将您的网站与FTP客户端或cPanel连接并找到.maintenance文件并将其删除。

    关闭安全模式

    有时关闭安全模式可能会解决WordPress更新问题。您可以使用服务器控制面板轻松关闭安全模式。您只需要编辑php.ini文件。

    使用FTP客户端或服务器控制面板打开文件并将此行safe_mode = on更改为此safe_mode = off 。这将关闭安全模式。

    之后,您需要重新启动Apache并登录到您的网站。这将解决您网站上的更新问题错误。

    文件权限

    当WordPress更新自身时,它会在您的服务器上创建一个临时文件。要创建文件WordPress需要您的服务器升级目录的权限。要解决此问题,您需要转到您的网站根目录并找到升级和文件并为其提供写入权限。您可以提供755777。在给予适当的许可后,WordPress可以自行更新。如果您授予777权限,则需要在更新WordPress后将其更改回 755。

    编辑wp-config文件

    如果上述方法无法更新WordPress,那么您需要在wp-config文件中手动添加更新的凭据。找到wp-config文件,然后将以下代码添加到其中。

    define(‘FS_METHOD’, ‘ftpext’);
    define(‘FTP_HOST’, ‘ftp.website.com’);
    define(‘FTP_USER’, ‘username’);
    define(‘FTP_PASS’, ‘password’);
    define(‘FS_METHOD’, ‘ftpext’);

    define(‘FTP_HOST’, ‘ftp.website.com’);

    define(‘FTP_USER’, ‘username’);

    define(‘FTP_PASS’, ‘password’);

    define(‘FS_METHOD’, ‘ftpext’);
    
    define(‘FTP_HOST’, ‘ftp.website.com’);
    
    define(‘FTP_USER’, ‘username’);
    
    define(‘FTP_PASS’, ‘password’);

    小结

    按照此过程,您将能够修复WordPress自动更新错误。如果所有方法都失败了,那么您需要手动更新WordPress。

  • WordPress建立数据库连接时出错(Error Establishing a Database Connection)终极解决方案

    错误类型:
    数据库错误
    错误名称:
    建立数据库连接时出错
    英文名称:
    Error Establishing a Database Connection
    错误描述:
    数据库损坏或者登录凭据不正确,损坏的WordPress文件,数据库服务器问题和流量激增都有可能导致此错误发生。

    Error Establishing a Database Connection解决方案

    “ 建立数据库连接时出错(Error Establishing a Database Connection) ”可能是WordPress用户可能遇到的最常见和最可怕的错误之一。这绝对与死亡白屏(WSOD)息息相关。此错误意味着您的网站不再通信或可以访问WordPress数据库,整个网站瘫痪。

    对于这样的错误,站长切勿掉以轻心的事情,应该立即尝试解决此问题,直接影响流量,SEO等等。但不用担心,今天我们将讨论导致此错误的一些常见情况,以及对应的解决方案。

    什么是建立数据库连接时出错?

    WordPress网站上的所有信息,例如发布数据,页面数据,元信息,插件设置,登录信息等,都存储在MySQL数据库中。唯一没有存储的数据是媒体内容,例如图像,以及主题/插件/核心文件,例如index.php,wp-login.php等。当有人访问您的网站时,PHP会在页面上执行代码并从数据库中查询信息,然后将其显示到访客浏览器中。

    如果由于某种原因这无法正常工作,则将出现建立数据库连接时出错,如下所示。整个页面空白,因为连接无法正常工作,无法检索任何数据以呈现页面。这不仅破坏了网站的前端,而且导致无法访问WordPress仪表板。

    但是,访客可能不会立即在前端看到此错误。那是因为站点缓存还可供访问,直到缓存过期为止。

    建立数据库连接时出错截图

    建立数据库连接时出错

    当发生此错误时访问者尝试访问您的站点时,它将在您的日志中生成500 HTTP状态代码。同样的状态码会出现“内部服务器错误”。这意味着服务器出现问题,请求的资源未交付。当一切正常时,您的站点将生成200 HTTP状态代码,这意味着一切正常。

    导致此错误的常见情况

    那么究竟为什么会发生这种情况呢?好吧,以下是一些常见的原因。不用担心,我们将更深入地研究每一个问题,以便您知道如何解决它们。通常,您可以在15分钟内解决此错误。

    • 最常见的问题是数据库登录凭据不正确。WordPress网站需要使用数据库相关登录信息来连接到其对应的MySQL数据库。
    • 数据库已损坏。由于主题,插件可安装卸载如此之多,长年累月的不断删除和安装,有时会导致数据库损坏。这可能是由于表丢失或个别损坏,或者是某些信息被意外删除了。
    • WordPress安装中可能存在损坏的文件。这有时甚至可能由于黑客而发生。
    • 数据库服务器问题。Web主机端可能有几件事是错误的,例如由于流量峰值导致数据库过载或由于太多并发连接而无响应。这在共享主机中很常见,因为它们为同一服务器上的许多用户使用相同的资源。
    • 流量激增。根据您使用的 Web 主机,您的服务器可能无法处理许多并发数据库连接。流量的增加可能会导致数据库出现临时问题。

    如何修复“建立数据库连接时出错”

    在开始对错误进行故障排查之前,建议您首先进行数据库备份,因为以下许多建议涉及操作数据库中的信息。无论你的技术水平如何,在尝试修改WordPress网站数据库之前,都应始终进行备份。

    您可以使用WordPress备份插件(例如VaultPress或WP Time Capsule)来备份文件和数据库。

    如果是宝塔面板用户,那就网站文件及数据库备份就很简单了,进入宝塔控制面板,在左边菜单找到“计划任务”,进入界面找到备份数据库和备份网站,手动执行即可。

    备份WordPress网站

    备份WordPress网站

    当然你还可以通过SFTP等工具,进入服务器执行手动备份网站文件,及通过phpMyAdmin手动备份MySQL数据库。备份成功后,就该开始对“建立数据库连接时出错”问题进行故障排除了。

    参考阅读:《使用BackWPup插件备份WordPress教程》、《如何安全备份WordPress博客网站数据?

    1.检查数据库登录凭据

    首先要做的是检查以确保WordPress配置文件的数据库登录凭据正确。这是迄今为止“建立数据库连接时出错”报错的最常见原因,特别是在迁移网站到新的托管服务提供商之后。WordPress网站的连接详细信息存储在wp-config.php文件中,该文件通常位于WordPress网站的根目录下。

    它包含四个重要信息,这些信息都必须正确才能成功进行连接数据库。

    数据库名称

    // ** MySQL settings ** //
    /** The name of the database for WordPress */
    define(‘DB_NAME’, ‘xxxxxx’);
    // ** MySQL settings ** //
    /** The name of the database for WordPress */
    define(‘DB_NAME’, ‘xxxxxx’);
    // ** MySQL settings ** // 
    /** The name of the database for WordPress */ 
    define('DB_NAME', 'xxxxxx');

    数据库用户名

    /** MySQL database username */
    define(‘DB_USER’, ‘xxxxxx’);
    /** MySQL database username */
    define(‘DB_USER’, ‘xxxxxx’);
    /** MySQL database username */ 
    define('DB_USER', 'xxxxxx');

    数据库密码

    /** MySQL database password */
    define(‘DB_PASSWORD’, ‘xxxxxxxxx’);
    /** MySQL database password */
    define(‘DB_PASSWORD’, ‘xxxxxxxxx’);
    /** MySQL database password */ 
    define('DB_PASSWORD', 'xxxxxxxxx');

    主机名(服务器)

    /** MySQL hostname */
    define(‘DB_HOST’, ‘localhost’);
    /** MySQL hostname */
    define(‘DB_HOST’, ‘localhost’);
    /** MySQL hostname */ 
    define('DB_HOST', 'localhost');

    要访问wp-config.php文件,您可以通过SFTP连接到站点并浏览到站点的根目录。或者,如果您使用的是宝塔,则可以进入宝塔控制面板单击“文件”,浏览到站点的根目录,然后右键单击以编辑文件。

    宝塔文件管理

    宝塔文件管理

    以下是打开文件后的示例。

    wp-config.php文件数据库访问凭证

    wp-config.php文件数据库访问凭证

    现在,您需要对照当前值及服务器数据库真实值,以确保它们正确无误。对于宝塔用户,请按照以下说明进行操作。

    检查宝塔面板中的数据库凭据

    您需要登录宝塔面板,进入数据库即可找到网站对应的数据库,找到数据库名、用户名及密码等信息 。

    宝塔面板查看数据库账号密码

    宝塔面板查看数据库账号密码

    然后核对wp-config.php文件的对应信息,确保两边的信息一致即可,非常方便。(或者这也就是国内众多站长选择使用宝塔面板的原因)

    检查cPanel面板中的数据库凭据

    如果你是使用cPanel管理主机,整个步骤稍微有点复杂。

    首先要检查的是数据库名称。为此,您需要进入cPanel控制面板登录phpMyAdmin 。

    cPanel控制面板的phpMyAdmin

    cPanel控制面板的phpMyAdmin

    在左侧菜单找到你的网站对应的数据库名称。忽略“information_schema”数据库,因为这是主机使用的数据库。然后,将该名称与wp-config.php文件中的DB_NAME值进行比较。如果它们匹配,那么这不是问题。如果它们不匹配,那么您需要更新wp-config.php文件。

    cPanel 数据库名称

    cPanel 数据库名称

    您还可以通过确保数据库是否包含你网站的URL来验证这是正确的数据库。只需单击数据库,然后单击wp_options表(出于安全目的,此名称可能稍有不同,例如wpxx_options)。在表格的顶部,您将看到网站URL和名称的值。如果这些与您当前站点匹配,说明这个是你的网站的数据库。

    在phpMyAdmin检查网站URL

    在phpMyAdmin检查网站URL

    如果数据库名称正确,但是在建立数据库连接时仍然出现错误,那你还需要检查用户名和密码。为此,你需要在WordPress网站的根目录中创建一个新的PHP文件(随意命名,例如checkdb.php),并输入以下代码,需使用wp-config.php文件中的值替换为db_user和db_password的值。

    <?php
    $test = mysqli_connect(‘localhost’, ‘db_user’, ‘db_password’);
    if (!$test) {
    die(‘MySQL Error: ‘ . mysqli_error());
    }
    echo ‘Database connection is working properly!’;
    mysqli_close($testConnection);
    <?php
    $test = mysqli_connect(‘localhost’, ‘db_user’, ‘db_password’);
    if (!$test) {
    die(‘MySQL Error: ‘ . mysqli_error());
    }
    echo ‘Database connection is working properly!’;
    mysqli_close($testConnection);
    <?php
    $test = mysqli_connect('localhost', 'db_user', 'db_password');
    if (!$test) {
    die('MySQL Error: ' . mysqli_error());
    }
    echo 'Database connection is working properly!';
    mysqli_close($testConnection);

    浏览器访问https://yourdomain.com/checkdb.php。如果收到“MySQL Error: Access denied(MySQL错误:访问被拒绝)”,则说明您的用户名或密码错误,您将需要继续执行下一步以重置凭据。

    MySQL错误:访问被拒绝

    MySQL错误:访问被拒绝

    但如果是“Database connection is working properly.(数据库连接正常工作)”,则说明数据库用户名和密码正确。完成测试后,请确保删除此文件。

    数据库连接正常工作

    数据库连接正常工作

    如果确定数据库用户名和密码错误,接下来您需要重置用户名和密码。在cPanel中,点击“MySQL数据库”。

    cPanel 控制面板之MySQL数据库

    cPanel 控制面板之MySQL数据库

    向下滚动并创建一个新的MySQL用户。尝试选择唯一的用户名和密码(可以使用提供的密码生成器工具生成高强度密码),以免轻易被猜中。然后点击“Create User”。或者,您也可以在此界面上更改当前数据库用户的密码。

    创建MySQL用户

    创建MySQL用户

    然后向下滚动并将新用户添加到数据库中。下一个界面将询问您要分配的特权,选择“All Privileges(所有权限)”。

    使用cPanel新增数据库用户

    使用cPanel新增数据库用户

    然后使用这些新凭据并更新至wp-config.php文件(更新DB_USER和DB_PASSWORD值)。到此,你也可以使用前面提到的测试文件验证数据库凭证信息是否正确。但如果这未能解决问题,可能是主机名(DB_HOST)错误。某些主机使用不同的值,你可以参阅一些常见数据库主机值列表,或者查看主机相关文档及联系主机提供商提供。有些人可能还会使用127.0.0.1而不是localhost。

    如果您已完成上述所有操作,但仍是“建立数据库连接时出错”,继续往下看。

    2. 修复损坏的数据库

    在某些情况下,可能是数据库已损坏。有时(尽管不是很经常)会发生这种情况,因为随着时间的推移,新插件和主题会不断添加/删除数百张数据表。如果您尝试登录WordPress网站的仪表板并收到以下错误,则表明您的数据库已损坏:“一个或多个数据库表不可用。数据库可能需要修复。” 重要的是要注意,您可能只会在访问WordPress管理后台才看到此错误,而在前端仅看到建立数据库连接错误提示。

    WordPress实际上提供可以启动的数据库修复模式。只需将以下内容添加到wp-config.php文件的底部。

    define(‘WP_ALLOW_REPAIR’, true);
    define(‘WP_ALLOW_REPAIR’, true);
    define('WP_ALLOW_REPAIR', true);

    WordPress修复模式

    WordPress修复模式

    然后浏览器访问WordPress网站地址:https : //yourdomain.com/wp-admin/maint/repair.php。在页面你可以选择“修复数据库”或“修复并优化数据库”。由于您目前可能正在对站点进行故障排除,因此建议使用“修复数据库”选项,更高效。

    WordPress修复数据库

    WordPress修复数据库

    在运行完上述数据库的修复之后,请确保删除添加到wp-config.php文件中的代码行,否则任何人都可以运行修复。如果您使用cPanel,则还可以从MySQL数据库界面中运行修复。

    cPanel修复数据

    cPanel修复数据

    或者,您也可登入phpMyAdmin进行修复。只需登录phpMyAdmin,选择需要修复的网站对应的数据库,然后选择所有表。然后从下拉菜单中单击“修复表”。这实际上只是在运行REPAIR TABLE命令。

    通过phpMyAdmin修复表

    通过phpMyAdmin修复表

    最后,你想更“装逼”些,还可以选择使用WP-CLI通过以下命令运行修复:

    wp db repair
    wp db repair
    wp db repair

    3. 修复损坏文件

    “建立数据库连接时出错”另外一个可能原因是文件已损坏。无论这是由于通过FTP传输文件的问题,黑客获得了访问您的站点的权限还是主机的问题,您都可以快速解决此问题。特别提醒,尝试此操作之前先备份您的网站。

    基本上,您只需要替换WordPress的核心版本,无需理会插件,主题或媒体。你可以通过访问WordPress.org下载最新版本的WordPress

    下载WordPress

    下载WordPress

    在您的计算机上解压缩该文件,然后删除wp-content文件夹以及wp-config-sample.php文件。

    删除wp-content 目录及WP初始配置文件

    删除wp-content 目录及WP初始配置文件

    然后,通过SFTP将其余文件上传到您的站点,覆盖现有文件。这将替换所有有问题的文件,并确保您拥有干净且未损坏的新文件。建议这样做后清除浏览器缓存。然后检查您的WordPress网站以查看错误是否仍然存在。

    4. 数据库服务器问题

    如果上述方法均不能帮助您解决问题,那么强烈建议您与托管服务提供商联系,因为这可能是数据库服务器的问题。例如,如果数据库并发连接太多,则可能会产生错误。因为很多主机在服务器上都限制了一次允许连接的数量。利用缓存插件可以帮助最大程度地减少您站点上的数据库交互。

    这个问题在共享主机上经常发生,因为理论上其他人可能会影响您的站点。这是因为共享主机共同使用服务器上的所有资源。始终建议尽可能使用VPS主机来搭建WordPress网站,至少主机资源由自己分配利用而不会变得人满为患。独立主机通常对环境进行微调,即可处理专门针对WordPress网站的大量流量。

    5. 恢复至最近备份

    最后在情非得已之时,恢复最近备份数据。在某些情况下,如果无需担心发生错误之时与上一次备份之间产生的数据,这可能是解决问题的较快方法。许多服务器提供商都提供备份数据恢复支持。请记住,您可能需要同时还原数据库和文件。

    如果您是宝塔用户,则可以通过宝塔控制面板的计划任务,创建备份数据库或者备份网站计划任务,支持按周期定时备份,非常方便。

    宝塔控制面板备份计划

    宝塔控制面板备份计划

    如果是恢复数据库备份,您只需要进入宝塔控制面板,进入数据库菜单,找到你需要恢复的数据库,点击“有备份”,选择需要恢复的备份版本,点击“恢复”即可。

    WordPress数据库恢复

    WordPress数据库恢复

    如果是恢复网站备份,则可以通过访问宝塔控制面板-文件,进入/www/backup/site目录,找到网站备份压缩包,将压缩包解压到对应网站目录即可。

    WordPress网站数据恢复

    WordPress网站数据恢复

    小结

    如您所见,有很多方法可以修复WordPress中的“建立数据库时连接出错”。最常见的是wp-config.php文件中的无效凭据。检查以确保它们正确是最好的起点。您对网站的最后一件事就是体验停机时间。

    希望上述步骤之一可以帮助您恢复并运行您的网站。请记住,如果需要,您始终可以从备份中恢复您的站点。