自定义插件类中使用的碳域

时间:2017-08-23 作者:Nikita Dudarev

我有一个插件,到目前为止还没有功能,并且有一个结构

class Test
{
    public function __construct()
    {

    }
}

$wpTest = new Test();
我需要使用Carbon Fields,当我安装这个库时,我根据说明更改了结构,只是适应了OOP

use Carbon_Fields\\Container;
use Carbon_Fields\\Field;

class Test
{

    public function __construct()
    {
        add_action( \'carbon_fields_register_fields\', array( $this, \'crb_attach_theme_options\') );
        add_action( \'after_setup_theme\', array( $this , \'crb_load\' ) );
    }

    public function crb_load()
    {
        require_once( \'vendor/autoload.php\' );
        \\Carbon_Fields\\Carbon_Fields::boot();
    }

    public function crb_attach_theme_options()
    {
        Container::make( \'theme_options\', __( \'Plugin Options\', \'crb\' ) )
        ->add_fields( array(
            Field::make( \'text\', \'crb_text\', \'Text Field\' ),
            ) );
    }

}

$wpTest = new Test();
但它不起作用,我该如何修复它?

1 个回复
SO网友:Nikita Dudarev

我找到了我问题的答案。从零件来看,问题是我连接了vendor/autoload.php 在访问__construct().

下面是解决此任务的示例

use Carbon_Fields\\Container;
use Carbon_Fields\\Field;



class PluginOption
{

    public function __construct()
    {
        require_once( \'vendor/autoload.php\' );
        \\Carbon_Fields\\Carbon_Fields::boot();
        add_action( \'carbon_fields_register_fields\', array( $this, \'crb_attach_theme_options\') );
    }

    public function crb_attach_theme_options()
    {
        Container::make( \'theme_options\', __( \'Plugin Option\', \'crb\' ) )
        ->add_fields( array(
            Field::make( \'text\', \'crb_text\', \'Text Field\' ),
            ) );
    }

}

$wpTest = new PluginOption();

结束