我想用CMB2重复字段在前端显示图像字段

发布于 2025-02-09 07:31:26 字数 3075 浏览 1 评论 0原文

/** ============================================ ==============================================================

​=============================================== ====================== */

函数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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文