代码不起作用的 24 多个原因以及如何修复它
已发表: 2013-08-21我总是先测试代码以确保它可以正常工作,但是有很多原因有时对我自己和其他使用它的人都不起作用,即使它没有损坏。
以下是代码不起作用的一些原因的列表:
- 忘记清除浏览器缓存:您可能对 CSS 进行了更改,并认为它们实际上不起作用,因为浏览器实际上显示的是包含旧代码的旧版本页面。 清除浏览器缓存以确保。
- 未清除服务器缓存:一些托管主机提供商使用非常激进的服务器端缓存。 我知道 WPEngine 确实意味着 CSS 更改实际上可能需要几天时间才能出现在您的网站上。 您可能会做出这些真正有效的更改,但认为它们不起作用,因为您无法在前端看到这些更改。 清除服务器缓存并在本地测试使用服务器端缓存或缓存插件的代码。
- 将 CSS 代码粘贴到函数文件中: CSS 代码在函数文件中无法正常工作,该文件包含一个打开的 PHP 标记,这意味着它由安装在服务器上的 PHP 处理器读取。
- 将 PHP 粘贴到样式表中:PHP 代码在 .css 文件中不起作用,该文件由浏览器读取,而不是服务器上安装的 PHP 处理器。
- 将 PHP 或 CSS 粘贴到页眉和页脚脚本中:包含页眉和页脚脚本框的主题这样做是为了轻松添加 Javascript 用于 Google Analytics 跟踪和实时聊天脚本,而不是 PHP 脚本。
- 从网页复制并粘贴到主题编辑器中:非常常见的错误,可能导致撇号转身,导致白屏死机,从而破坏您的网站。 始终使用 Notepad++ 等文本编辑器复制原始代码并将其粘贴到文件末尾。
- 没有复制所有代码:复制不包含类或缺少右括号的 CSS 代码块将导致代码无法正常工作。 因此,当唯一的问题是您在后面留下括号或分号时,您可能会认为代码没有问题。
- 没有粘贴所有代码:与上面相同,有时确实会发生。
- 当你的主题使用旧的钩子时使用新的钩子:对仍在新站点上运行旧 XHTML 标记的站点使用包含循环钩子的代码是行不通的。 该代码将在旧网站上运行,因此不会损坏,但它不适用于 HTML 5 启用子主题。
- 当你的主题使用新的钩子时使用旧的钩子:同上
- 使用不支持代码中的类的旧浏览器:一些旧浏览器不支持某些 CSS 类,这意味着代码不会执行其编写的任务。 您可以安装多个浏览器来测试代码或使用免费的在线工具来实现跨浏览器的兼容性。
- 使用尚不支持代码中的类的最新浏览器版本:一些新浏览器不支持某些 CSS 类,这意味着代码可以在旧浏览器上运行,但您可能认为它不支持,因为您使用的是 beta版本或刚刚发布的最新版本。
- 复制开始的 PHP 标记并将其粘贴到您的函数文件中: PHP 片段通常包含一个开始的 PHP 标记,但是不应将其粘贴到已经包含该标记的函数文件中。 如果发生这种情况,您将收到一条错误消息并破坏您的网站,只需删除标签即可轻松修复。 这就是使用文本编辑器将代码粘贴到实际文件中而不是使用 WordPress 编辑器的最佳实践的原因。 如果您将代码添加到实际文件中,您可以轻松地重新打开它并快速删除问题,如果使用主题编辑器则不是这种情况,因为当您遇到编程错误时您将被锁定在站点之外。
- 复制并粘贴两种解决方案而不是选择一个:许多帖子和论坛包含多个解决相同问题的代码片段。 如果您粘贴 2 个执行相同操作的代码片段,它可能会破坏您的网站,因此您可能会认为代码已损坏,但事实并非如此。 一次只使用一个片段。
- 将函数代码复制到模板文件中:有时您会发现编写用于模板文件而不是子主题函数文件的 PHP 代码。 模板代码并不总是在函数文件中工作,因为它通常包含在 PHP 开始和结束标记中。 自定义函数通常并不意味着它们通常不能在 te,plate 文件中工作,具体取决于主题。 只需确保您确切知道要将代码粘贴到哪个文件中,否则您可能会收到错误,认为代码在执行时不起作用。
- 您安装了一个覆盖代码的插件:一些插件覆盖 PHP 代码,这意味着带有过滤器和钩子的代码可能无法正常工作。 Genesis Simple Edits 插件就是一个例子。 如果您安装了这个插件,可以自定义发布信息和发布元数据,那么添加 PHP 代码来执行相同的操作(包括发布元数据或发布信息过滤器)将不起作用。 您可能认为代码不起作用,而实际上它确实起作用,您需要做的就是解决问题并让代码起作用,即停用插件。
- 使用 PHP 代码有条件地更改布局此代码不适用于使用 bbPress 的某些主题,这些主题也使用 Genesis bbPress 连接插件。 这个插件挂钩到 Genesis 过滤器,这与 PHP 代码有条件地更改布局所做的事情相同,因此它不会在覆盖代码时工作。
- 在 HTML 5 子主题上使用 XHTML CSS 类- 示例:#content 不适用于使用 .entry-content 的 HTML 5 子主题。
- 在 XHTML 主题上使用 HTML 标记– .site-header 不适用于运行 XHTML 标记的站点,因此您需要使用 #header。
- 首页模板代码——首页模板中的任何代码仅在您使用默认阅读设置时才有效。 如果您更改这些设置并选择静态页面作为首页,则首页模板中的代码将不起作用。
- 在媒体查询之后添加 CSS - 最好在媒体查询之前添加自定义 CSS,否则可能无法正常工作。
- 添加 CSS 以修改已设置样式的类- 您在样式表的末尾添加了 CSS 以更改默认已设置样式的现有元素的样式。 这方面的一个示例是,当您修改小部件区域以使用 Genesis 特色帖子小部件时,其默认样式为使用特色页面小部件。 您的 CSS 可能不同,但您使用的是不同的类。 您需要做的是修改默认 CSS,使其在特色页面小部件的样式上更长,并且只为特色帖子小部件设置样式。
- 主页模板代码– home.php 模板文件中的任何代码,只有在您使用默认阅读设置时才能在首页上使用。 如果您使用静态页面作为首页,则代码仅适用于您的帖子页面(如博客页面),前提是您尚未从下拉菜单中选择博客页面模板。 (仅适用于包含博客页面模板的主题)。
- 错误修改的 CSS 导致其他 CSS 中断– 一名成员安装了一些代码来创建自定义布局,但它不起作用,因为用于修改内容宽度的 CSS 不起作用。 他们发现之前使用 !important 添加的其他 CSS 阻止了新 CSS 的工作。
如果您还激活了 Genesis Simple Edits 插件,则上面的代码将不起作用,因为它会覆盖帖子信息过滤器。
这就是我目前所能想到的,但我确信代码不起作用(但确实如此)还有很多原因可以添加到这个列表中。
相关文章
- 重新发布代码之前要考虑的 5 个要点