【问题标题】:Including files when writing Wordpress admin options page for a plugin在为插件编写 Wordpress 管理选项页面时包括文件
【发布时间】:2017-11-08 07:18:37
【问题描述】:

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

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>';

    .......

$PLUGIN_NAME 是 config.php 所必需的,我收到了变量未定义的错误。

奇怪的是,该类似乎被包含在内,因为在该类的构造函数中使用的变量也包含在 config.php 中,并且返回为未定义。

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

任何指针将不胜感激!

【问题讨论】:

    标签: php wordpress plugins include options


    【解决方案1】:

    我认为,$Plugin_name 是在 config.php 文件中定义的,该文件中定义的所有值在程序函数中都不可用。

    有两种方法可以获取函数数据:

    • 使用全局
    • 使用 new config()(如果 config.php 位于一个类中)

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

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

    $config = new config ();
    

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

    $config->plugin_name;
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      • 2017-09-19
      • 2015-02-07
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      相关资源
      最近更新 更多