我想用CMB2重复字段在前端显示图像字段
/** ============================================ ==============================================================
-
=============================================== ====================== */
函数yourthemeprefix_yourcpt_yourcpt_metabox_register(){
$prefix = '_cmb_';
$cmb_repeat_test = new_cmb2_box( array(
'id' => $prefix . 'metaboxjff',
'title' => __( 'Repeatable Editor', 'your-text-domain' ),
'object_types' => array( 'page' ), // post type
'show_on' => array( 'key' => 'page-template', 'value' => 'page-test.php' ),
'context' => 'normal',
'priority' => 'high',
'show_names' => true,
) );
// Repeatable group
$group_repeat_test = $cmb_repeat_test->add_field( array(
'id' => $prefix . 'metaboxjff_sections',
'type' => 'group',
'options' => array(
'group_title' => __( 'Editor', 'your-text-domain' ) . ' {#}', // {#} gets replaced by row number
'add_button' => __( 'Add another Editor', 'your-text-domain' ),
'remove_button' => __( 'Remove Editor', 'your-text-domain' ),
'sortable' => true, // beta
),
) );
//* Title
$cmb_repeat_test->add_group_field( $group_repeat_test, array(
'name' => __( 'Test Title', 'your-text-domain' ),
'id' => $prefix . 'test_title_2',
'type' => 'text',
) );
//* Textarea
$cmb_repeat_test->add_group_field( $group_repeat_test, array(
'name' => __( 'Test Content', 'your-text-domain' ),
'id' => $prefix . 'test_content_2',
'type' => 'textarea',
'options' => array( 'textarea_rows' => 8, ),
) );
}
add_action('cmb2_init','yourthemeprefix_yourcpt_yourcpt_metabox_register');
/** ============================================ ================================================================
-
=============================================== ====================== **/
函数my_page_function_for_hook(){
$prefix = '_cmb_';
$entries = get_post_meta(get_the_ID() , $prefix . 'metaboxjff_sections', true);
foreach((array)$entries as $key => $entry) {
$title = $content = '';
if ( isset( $entry[ $prefix . 'test_title_2' ] ) )
$title = esc_html( $entry[ $prefix . 'test_title_2' ] );
if ( isset( $entry[ $prefix .'test_content_2' ] ) )
$content = $entry[ $prefix . 'test_content_2' ];
if ( !empty($title) ) {
echo '<h3> ' .$title . '</h3>';
}
if ( !empty($content) ) {
echo $content;
}
} //* end foreach;
} //*end my_page_function_for_hook_for_hook()
add_action() ;
/** ====================================================================================
- Functions file
==================================================================================== **/
function yourthemeprefix_yourcpt_metabox_register() {
$prefix = '_cmb_';
$cmb_repeat_test = new_cmb2_box( array(
'id' => $prefix . 'metaboxjff',
'title' => __( 'Repeatable Editor', 'your-text-domain' ),
'object_types' => array( 'page' ), // post type
'show_on' => array( 'key' => 'page-template', 'value' => 'page-test.php' ),
'context' => 'normal',
'priority' => 'high',
'show_names' => true,
) );
// Repeatable group
$group_repeat_test = $cmb_repeat_test->add_field( array(
'id' => $prefix . 'metaboxjff_sections',
'type' => 'group',
'options' => array(
'group_title' => __( 'Editor', 'your-text-domain' ) . ' {#}', // {#} gets replaced by row number
'add_button' => __( 'Add another Editor', 'your-text-domain' ),
'remove_button' => __( 'Remove Editor', 'your-text-domain' ),
'sortable' => true, // beta
),
) );
//* Title
$cmb_repeat_test->add_group_field( $group_repeat_test, array(
'name' => __( 'Test Title', 'your-text-domain' ),
'id' => $prefix . 'test_title_2',
'type' => 'text',
) );
//* Textarea
$cmb_repeat_test->add_group_field( $group_repeat_test, array(
'name' => __( 'Test Content', 'your-text-domain' ),
'id' => $prefix . 'test_content_2',
'type' => 'textarea',
'options' => array( 'textarea_rows' => 8, ),
) );
}
add_action( 'cmb2_init', 'yourthemeprefix_yourcpt_metabox_register' );
/** ====================================================================================
- On the page
==================================================================================== **/
function my_page_function_for_hook() {
$prefix = '_cmb_';
$entries = get_post_meta(get_the_ID() , $prefix . 'metaboxjff_sections', true);
foreach((array)$entries as $key => $entry) {
$title = $content = '';
if ( isset( $entry[ $prefix . 'test_title_2' ] ) )
$title = esc_html( $entry[ $prefix . 'test_title_2' ] );
if ( isset( $entry[ $prefix .'test_content_2' ] ) )
$content = $entry[ $prefix . 'test_content_2' ];
if ( !empty($title) ) {
echo '<h3> ' .$title . '</h3>';
}
if ( !empty($content) ) {
echo $content;
}
} //* end foreach;
} //* end my_page_function_for_hook()
add_action('genesis_after_entry', 'my_page_function_for_hook');
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论