Fieldmanager Wordpress плагин
Мне нужно найти способ отображения значений, сохраненных в пользовательских мета-окнах. Мета-боксы создаются с помощью плагина WP Fieldmanager. Вот код, используемый для отображения полей в сообщении администратора:
add_action( 'init', function() {
$fm = new Fieldmanager_Group( array(
'name' => 'sidebar',
'limit' => 0,
'label' => 'Sidebar Section',
'label_macro' => array( 'Section: %s', 'name' ),
'add_more_label' => 'Add another Sidebar Section',
'children' => array(
'name' => new Fieldmanager_Textfield( 'Section Heading' ),
'item' => new Fieldmanager_Textfield( 'Item', array(
'limit' => 0,
'one_label_per_item' => true,
'add_more_label' => 'Add another Item',
) ),
),
)
);
$fm->add_meta_box( 'Sidebar', array( 'post' ) );
} );
Вы можете видеть, что на самом деле это повторяющаяся группа, внутри которой есть повторяющееся поле. Мне нужно отобразить мета значения из этих групп.
Благодарю.
1 ответ
Вы должны использовать foreach(), чтобы получить содержимое:
$repeating_fields = get_post_meta( get_the_ID(), 'sidebar', true); //name of your custom field;
foreach ($repeating_fields as $repeating_field) {
print_r($repeating_field[name]); //use here the name given to your children in array to select the correct one;
}
Отсюда вы, если знаете, как организовать цикл foreach, вы должны быть хорошими.
Если вы хотите получить содержимое метабокса в виде массива, вы можете сделать это следующим образом:
$repeating_fields = get_post_meta( get_the_ID(), 'sidebar', true);
$name = array(); //define the variable as an array from the start;
foreach ($repeating_fields as $repeating_field) { //start the loop
$name[] = $repeating_field[name]; //get the array content from the meta box
}
echo $name; //echo the array or parts of it