require_once() 和 require 函数不起作用

时间:2021-04-09 22:01:16

标签: php wordpress plugins require-once

我正在开发一个 Wordpress 插件,我希望在 init 函数的主文件中需要另一个页面,但它不起作用,我尝试过 require()、reqiure_once() 和 include_once() 但它们都不起作用! 我想在 woocommerce 设置中添加一个选项卡 ps:如果我删除一次 require 并将代码从 /inc/pages.php 带到 main.php 它运行良好,但我想要求该文件,以便我的主类不会那么长。

有什么解决办法吗?

主类中的函数init()

<?php
/*
* //about plugin information 
* 
*/ 

define('WP_DEBUG', true);


// Exit if accessed directly
if( !defined( 'ABSPATH' ) ) exit;


class Main 
{
  public $id='Main';
  public static $slug='';
  public static $wc_status_msg;  
  public static $wc_status;  
  public static $path='';

    public function instance(){
        add_action('plugins_loaded', array($this,'setup_main'));
        register_deactivation_hook(__FILE__,array($this,'deactivate'));
        register_activation_hook(__FILE__,(array($this,'activate')));

    }
    public function setup_main(){
        if(is_admin()){   
            add_action('init', array($this,'init'));

        }
    }
    public function init(){
  
  require_once(self::$path . "inc/pages.php");


    }

   
}

if( class_exists( 'Main' ) ){

    $Main=new Main();
    $Main->instance();
}



?>

pages.php 文件在 /inc 文件夹中:

<?php
// Exit if accessed directly
if( !defined( 'ABSPATH' ) ) exit;


public /**
 * 
 */
class Plugin_pages extends Main
{
    
    function __construct()
    {
         add_filter('woocommerce_settings_tabs_array',array($this,'add_settings_tab'),50);

    }



  /**
  * Add Settings tab.
  *       
  * @param mixed $settings_tabs
  */
  public function add_settings_tab($settings_tabs){
        if(current_user_can('administrator')){ 
  $settings_tabs[$this->id] = __( 'Salesforce', 'woocommerce_settings_tabs_array' );
        }
  return $settings_tabs;
  }













}
if( class_exists( 'Plugin_pages' ) ){

    new Plugin_pages();
    
}


1 个答案:

答案 0 :(得分:0)

问题已解决:插件文件夹的名称包含“My plugin”之类的空格,而应该没有“My-plugin”之类的空格