我正在使用WordPress框架,需要使用Carbon Fields。问题在于,所有内容都在lib目录中,然后分成更多目录,例如类,函数,短代码,插件等。然后将它们相应地命名为\ ThemeName \ Functions,\ ThemeName \ Plugins等。
从Carbonfields文档中说,将以下几行添加到根目录中的functions.php中
use Carbon_Fields\Container;
use Carbon_Fields\Field;
但是如何在我的Plugins目录中使用Carbon Field?
当我尝试以下操作时,出现错误:
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
否则,如果删除命名空间,它将正常工作。
答案 0 :(得分:0)
哦,我刚刚弄清楚了,只需要添加__NAMESPACE__
即可。 '\ funcion_name'到add_action https://wordpress.stackexchange.com/questions/284877/add-action-in-namespace-not-working这个答案对我有帮助。