【问题标题】:Very simple Wordpress plugin triggers fatal error when one tries activating it (PHP v 7)非常简单的 Wordpress 插件在尝试激活它时会触发致命错误(PHP v 7)
【发布时间】:2017-04-30 06:26:50
【问题描述】:

我正在诊断 WP_cron() 的问题,因此我编写了一个非常短的应用程序来列出待处理的 cron() 任务。

<? php

/*
    Plugin Name: My WP-Cron Test
    (there are more comments here but I left them out for brevity)
*/

function wpcron_print_tasks() {
    echo '<pre>';
    print_r( _get_cron_array() );
    echo '</pre>';
}

?>

尝试激活这个小插件会导致以下结果:

插件无法激活,因为它触发了致命错误。 解析错误:语法错误,unexpected 'function' (T_FUNCTION) in /latamconnex/wp-content/plugins/my-wp-cron-test/my-wp-cron-test.php 上 第 12 行

第 12 行根据编译器触发此操作,即 wpcron_print_tasks()

不知何故,即使这个插件只有一行带有 echo 命令,它也会触发错误。

关于构建一个简单的插件,我是否缺少一些基本的东西?

基本上,我想知道我需要知道什么才能激活最简单的插件。

系统详情:WordPress 4.7,PHP v. 7.0.13,通过 Pressable.com 在线部署

【问题讨论】:

    标签: php wordpress cron


    【解决方案1】:

    Q1:为什么会出现错误?

    让我们看看错误说明了什么。您收到的消息会告诉您问题所在以及引发错误的位置。让我们分解一下。

    插件无法激活,因为它触发了致命错误。解析错误:语法错误,第 12 行 /latamconnex/wp-content/plugins/my-wp-cron-test/my-wp-cron-test.php 中的意外“函数”(T_FUNCTION)

    1. 这是一个“语法错误”
    2. 它位于文件/latamconnex/wp-content/plugins/my-wp-cron-test/my-wp-cron-test.php
    3. 该文件的第 12 行引发了错误。

    它告诉您该文件的第 12 行或之前存在语法错误。

    查看您的代码,第 1 行有错误。你看到了吗?您在第 1 行有 &lt;? php。PHP 不会将该行识别为开始 PHP 标记。为什么? ?php 之间有一个空格。

    将该行更改为&lt;?php。注意,没有空格。

    确保第 1 行和第 12 行之间没有其他语法错误。

    提示:删除关闭 PHP 标记

    您不需要文件末尾的closing PHP tag ?&gt;。我建议删除结束 PHP 标记。

    为什么?该标记之后的任何额外空格或行将导致可怕的白屏死机。您可以在Stack Overflow 上看到有关它的对话。

    这里的最佳做法是从所有 PHP 文件中省略可选的结束标记。

    第二季度:

    基本上,我想知道我需要知道什么才能激活最简单的插件。

    首先,WordPress 必须将您的代码识别为“插件”。然后一旦找到它,就可以激活它。文件中不必有一行代码就可以激活它。

    WordPress如何识别插件?

    WordPress 搜索 wp-content/plugins 文件夹中的每个文件夹。它在每个文件夹的根目录中查找引导文件。

    是什么让文件成为“引导程序”?

    文件头 (DocBlock) 标识插件并使其可用于 WordPress。那是你的引导文件。

    WordPress 在插件文件夹的根目录中搜索具有正确结构的文件头的文件。

    结构在this Header Requirements document中定义。

    插件文件中应该包含什么?

    要激活的文件只需要:

    1. 开始 PHP 标记,即&lt;?php
    2. 文件的DocBlock

    就是这样。现在它已添加到插件列表中的插件 > 已安装插件(在 WordPress 后端管理中)。

    【讨论】:

      猜你喜欢
      • 2019-04-27
      • 2020-09-13
      • 1970-01-01
      • 2014-04-09
      • 2021-12-31
      • 2015-11-18
      • 2014-05-02
      • 2014-11-05
      相关资源
      最近更新 更多