【问题标题】:PHP Code not working in Wordpress PluginPHP 代码在 Wordpress 插件中不起作用
【发布时间】:2016-09-14 20:29:38
【问题描述】:

刚刚下载了这个插件(WordPress PDF Light Viewer),但它不会激活。我发现我必须更新我的 php 版本,但在我这样做之后它只会给出错误:

Fatal error: Call to a member function getVersion() on a non-object in .../wp-content/plugins/pdf-light-viewer/controllers/Plugin.php on line 260

经过一番挖掘,我发现这行代码有问题:

$Imagick = static::getXMagick();

接下来是:

$ImagickVersion = $Imagick->getVersion();

显然,前一行返回 null,我找不到任何有关此代码实际作用的信息,因为它在搜索中显示的唯一位置是在此插件上。

所以,我认为我需要找到一种方法将 $Imagick 作为对象拉取,以便 getVersion() 可以在其上正确运行。如果我猜对了,那就是我需要回答的问题

【问题讨论】:

    标签: php wordpress plugins version imagick


    【解决方案1】:

    PDF Light 查看器需要Imagemagik or GMagik.。此外,它还需要 Imagick 或 Gmagick PECL 库。

    我的猜测是您的 Wordpress 服务器需要安装这些。静态 getXMagick() 函数必须实例化一个 PECL Imagick 对象(它包装了 Imagemagik),但在您的 PHP 安装中没有找到它。

    在 Ubuntu 上安装 Imagemagick(用于 PHP 5): apt-get install imagemagick php5-imagick

    【讨论】:

    • 这将在服务器本身上,对吗?该插件确实包含 Imagick。
    • 正确。您是否有权访问或能够将插件添加到服务器上的 PHP 安装?但如果它附带它,那么我希望插件能够找到它。
    • 我刚刚查看了插件附带的文档。它说 Imagemagick 是一项要求,但它看起来不像是提供的(如果是的话,我会感到惊讶)。
    • 我的主机确实说 Imagick 在他们所有的服务器 (inmotionhosting.com/support/website/software/using-imagemagick) 上都已打开,尽管它声明“但是,它只能通过命令行、cron 作业或 PHP 代码访问网页。命令行选项的路径如下所示:/usr/bin/convert /usr/bin/mogrify" 所以,我猜我需要重新编写插件代码才能以这种方式访问​​它?
    • 嗯,插件使用Imagick 对象,而 Inmotionhosting 的建议是通过命令行使用 Imagemagick。他们的 PHP 示例甚至使用命令行。他们引用了“Imagick”对象 (php.net/manual/en/book.imagick.php),但他们没有在示例中使用它。我会打电话给他们的支持,并确保在您的共享主机上安装了 Imagick PECL 扩展。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多