Установил плагин Carbon Fields.
В файле functions.php прописал страховку
if ( ! function_exists( 'carbon_get_post_meta' ) ) {
function carbon_get_post_meta( $id, $name, $type = null ) {
return false;
}
}
Тут я привел одну функцию, на самом деле я прописал все из документации.
Далее я прописал хук для подключения произвольных полей из файлов
add_action( 'carbon_fields_register_fields', 'crb_attach_post_options' );
function crb_attach_post_options() {
// путь к пользовательскому файлу определения поля (полей), измените под себя
require_once __DIR__ . '/inc/carbon-fields/home-fields.php';
}
А вот код из файла home-fields.php, ничего особенного
use Carbon_Fields\Container;
use Carbon_Fields\Field;
Container::make( 'post_meta', 'Текст слайдера' )
->show_on_post_type('page') // этот метод можно не писать, так как show_on_post_type('post') по умолчанию
->show_on_page('glavnaya')
->add_fields(array(
Field::make('text', 'home_slider_text_1', 'Текст слайдера')
->set_width(33),
Field::make('text', 'home_slider_text_2', 'Текст слайдера')
->set_width(33),
Field::make('text', 'home_slider_text_3', 'Текст слайдера')
->set_width(33)
));
Так вот, в чем проблема:
Если я просто прописываю
require_once __DIR__ . '/inc/carbon-fields/home-fields.php';
в functions.php, то на странице появляются произвольные поля.
Если же я прописываю путь к файлу в тело функции хука, полей нету.
Вот так не работает
Почему?