Изначально, если формировать контейнер полей в админке на странице редактирования поста, кастомного типа или статической страницы, блок находится под заголовком и основным редактором текста, если он определен. Но нам хочется поместить его в сайдбар по тем или иным причинам, например для удобства.
Положение контейнера определяется двумя параметрами.
Context.
Это часть страницы на которой контейнер должен отобразиться. По дефолту значение ‘normal’.
Но нам нужно положение ‘side’. Поэтому в отдельном контейнере переносим поле.
Container::make('post_meta', 'Доп поля (сайдбар)')
->set_context( 'side' )
->set_priority( 'low' )
->add_fields([
Field::make( 'select', 'catalog_product_category', "Категория" )
->set_options( $cat_array )
]);
Priority. Это второй параметр, который видно по коду. Исходя из названия — приоритетность. То есть положение относительно других блоков, в частности дефолтных таких как: блок публикации, категории и тд.
Более подробно в документации.
https://docs.carbonfields.net/learn/containers/post-meta.html
Он же в свою очередь ссылается на стандартную функцию wordpress add_meta_box().
https://developer.wordpress.org/reference/functions/add_meta_box