在为插件编写Wordpress管理选项页面时包含文件

时间:2017-06-07 05:23:29

标签: php wordpress plugins include options

因此,我在单独的php文件中编写了几个类,以帮助我在用户填写插件选项页面上的表单时进行API调用。 我还有一个配置文件,其中包含一些我希望包含在选项页面中的变量。 我遇到的问题是,当我需要文件时,它们似乎包括好,因为没有致命错误,但是没有任何变量或类可用于我挂钩到动作'admin_menu'的函数。 / p>

require_once( plugin_dir_path( __DIR__ ) . 'product-dyno/config.php');
require_once( plugin_dir_path( __DIR__ ) . 'product-dyno/license.php');
require_once( plugin_dir_path( __DIR__ ) . 'product-dyno/member.php');


function product_dyno_plugin_menu() {
    add_options_page( 'Product Dyno Options', 'Product Dyno', 
    'manage_options', 'activate-plugin-with-product-dyno', 
    'product_dyno_options' );
}
add_action( 'admin_menu', 'product_dyno_plugin_menu' );


function product_dyno_options() {

    $license = new License();

    if ( !current_user_can( 'manage_options' ) )  {
        wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
    }
    echo '<div class="wrap">';
    echo '<h2>Activate plugin '.$PLUGIN_NAME.'</h2>';
    echo '</div>';

    .......
config.php需要

$ PLUGIN_NAME,我收到的变量是未定义的错误。

奇怪的是,类似乎确实被包含在内,因为在类的构造函数中使用的变量(也包含在config.php中)也返回为undefined。

我认为这与已发送的标题或wp操作的顺序有关,但我真的无法解决,我在任何论坛上都找不到类似的问题!

任何指针都会非常感激!

1 个答案:

答案 0 :(得分:0)

我认为,$ plugin_name在config.php文件中定义,此文件中定义的所有值在过程函数中都不可用。

有两种获取功能数据的方法:

  • 使用全局
  • 使用new config()(如果config.php代表类)

要使用global:在product_dyno_options()的顶部,请添加global $PLUGIN_NAME;

如果config.php在一个类中,请使用与许可证相同的方法。在函数

$config = new config ();

然后在你想要的地方之后调用它:

$config->plugin_name;

希望有所帮助

相关问题