【问题标题】:include function xy() of a wordpress plugin包含 wordpress 插件的函数 xy()
【发布时间】:2011-09-27 13:41:08
【问题描述】:

我想构建一个 WordPress 管理仪表板小部件,它应该从另一个插件返回一些信息。

此仪表板小部件应在此处读取此插件的功能: http://plugins.svn.wordpress.org/wp-document-revisions/trunk/wp-document-revisions.php

所以我的代码是:

include (WP_PLUGIN_URL.'/wp-document-revisions/wp-document-revisions.php');
$file_type = get_file_type('3'); 

但这不起作用。这些是错误:

致命错误:调用未定义的函数 add_action() /.../wp-content/plugins/wp-document-revisions/wp-document-revisions.php 第 26 行

致命错误:调用未定义的函数 get_file_type() /.../wp-content/plugins/dashboard-widget/dashboard-widget.php

谁能告诉我该怎么做才能读取函数 get_file_type('3')?

【问题讨论】:

    标签: php wordpress class function include


    【解决方案1】:

    我假设您直接导航到 wp-content/plugins/ 文件夹中的 PHP 文件,而不是使用存根创建 URL。如果是这种情况,那么您可能忘记包含 wp-load.php

    【讨论】:

    • add_action() 是 WordPress 的核心函数,因此如果该函数不存在,则意味着您实际上还没有加载 WordPress。您可以执行include('../../../wp-load.php');(或指向您的 wp-load.php 文件的任何内容),然后您应该能够使用任何活动插件中的功能。
    【解决方案2】:

    您不应包含插件文件(因为插件可能未安装或激活)。 而不是这个,你应该检查函数是否存在:

    if (function_exists('get_file_type')) {
     $file_type = get_file_type('3'); 
     // rest of the code of the widget
    }
    

    【讨论】:

      【解决方案3】:

      听起来您正在尝试直接访问 PHP 文件,而不是通过 WordPress。你应该创建一个插件,并连接到Dashboard Widgets API

      至于 WP Document Revisions 的实施,您有两个选择。从 1.2 版开始,get_documents()get_document_revisions() 是两个全局函数,可以在 plugins_loaded 钩子之后随时访问。 FAQ 有更多信息,但它们的功能基本上与原生 get_posts() 函数类似。

      或者,该类应以$wpdr 的形式在全球范围内可用。因此,例如,如果您想致电 get_latest_version( 1 ),则应为 $wpdb->get_latest_version( 1 )

      两者都假定插件已经激活。如果您只是包含该文件,您将收到一个错误,您正在尝试重新声明 WP_Document_Revisions 类。

      如果您确实创建了仪表板,我很乐意将它包含在插件的未来版本中!

      【讨论】:

        猜你喜欢
        • 2014-06-29
        • 2015-04-17
        • 1970-01-01
        • 2022-12-19
        • 2016-03-12
        • 1970-01-01
        • 2011-02-23
        • 2013-08-30
        • 2011-09-07
        相关资源
        最近更新 更多