【问题标题】:Using Carbon Fields within a Namespace在命名空间中使用碳字段
【发布时间】:2020-02-08 03:31:09
【问题描述】:

我正在使用 WordPress 框架并且需要使用 Carbon Fields。问题是所有东西都在一个 lib 目录中,然后分成更多的目录,例如类、函数、短代码、插件等。然后这些目录相应地命名为 \ThemeName\Functions、\ThemeName\Plugins 等。

从 Carbonfields 文档中,它说将以下行添加到根目录中的 functions.php 中

use Carbon_Fields\Container; use Carbon_Fields\Field;

但是如何在我的插件目录中使用 Carbon Fields?

当我尝试以下操作时,出现错误:

namespace \ThemeName\Plugins;

use Carbon_Fields\Container;
use Carbon_Fields\Field;

add_action( 'carbon_fields_register_fields', 'crb_attach_theme_options' );
function crb_attach_theme_options() {
    Container::make( 'theme_options', __( 'Theme Options' ) )
        ->add_fields( array(
            Field::make( 'text', 'crb_text', 'Text Field' ),
        ) );
}

add_action( 'after_setup_theme', 'crb_load' );
function crb_load() {
   echo get_stylesheet_directory() . '/vendor/autoload.php';
    require_once( get_stylesheet_directory() . '/vendor/autoload.php' );
    \Carbon_Fields\Carbon_Fields::boot();
}

我希望能够将我所有的 Carbon Fields 代码放在这个文件中,但是由于它在命名空间中,我得到了错误

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'crb_load' not found or invalid function name in C:\xampp64\htdocs\sophie\wp-includes\class-wp-hook.php on line 286

否则,如果我删除命名空间,它可以正常工作。

【问题讨论】:

    标签: namespaces composer-php carbon-fields


    【解决方案1】:

    哦,我刚刚想通了,只需要添加 __NAMESPACE__ 即可。 '\funcion_name' 到 add_action https://wordpress.stackexchange.com/questions/284877/add-action-in-namespace-not-working 这个答案对我有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多