<table class="lg-directory-table">
<?php foreach( $grouped_results as $key => $grouped_result ): ?>
<?php if( !empty( $group_posts ) ): ?>
<tr>
<th colspan="<?php echo count( $args['fields'] ); ?>" scope="rowgroup">
<?php $term = get_term($key, LG_PREFIX . 'directory_group'); ?>
<?php echo $term->name; ?>
</th>
</tr>
<?php endif; ?>
<?php if(
!isset( $args['template_options']['show_headers'] )
|| $args['template_options']['show_headers']
): ?>
<tr>
<?php foreach( $args['template_options']['fields'] as $field_name ): ?>
<th><small><?php echo apply_filters('lg_directory_member_field_header', $field_name ); ?></small></th>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php global $post; ?>
<?php foreach( $grouped_result as $post ): setup_postdata($post); ?>
<?php
$member = array();
$member_metabox = cmb2_get_metabox( LG_PREFIX . 'directory_member' , LG_PREFIX . 'directory_member' );
foreach( $member_metabox->prop( 'fields' ) as $field_id => $field ) {
$field_value = get_post_meta( $post->ID, $field_id, true );
if( $field_value ) {
$array_field_id = str_replace( LG_PREFIX . 'directory_member_', '', $field_id );
$member[ $array_field_id ] = $field_value;
}
}
?>
<tr>
<?php foreach( $args['template_options']['fields'] as $field_name ): ?>
<td>
<span class="<?php echo 'lg-directory-' . $field_name; ?>">
<?php
$field_value = '';
if( isset( $member[$field_name] ) ) {
$field_value = $member[$field_name];
}
echo apply_filters('lg_directory_member_field_value', $field_value, $field_name, $member, $args );
?>
</span>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; wp_reset_postdata(); ?>
<?php endforeach; ?>
</table>
<?php endif; ?>
我的字段在后台显示和保存数据,但在我的模板中,它们根本拒绝显示数据。有什么特别的方法我需要做吗?我想不通这件事。如果有人能为我指明正确的方向。(而不是CMB2 GitHub,没有人评论他们的代码,所以我不知道他们在做什么,去哪里!(
请帮忙!
我将用例子回答。
这是我的CMB2元盒后端部分:
/* Tour Metabox */
add_action( 'cmb2_admin_init', 'lmbox_register_tour_metabox' );
function lmbox_register_tour_metabox() {
$prefix = 'tour_';
//Itinerary Metabox
$lmd_metabox = new_cmb2_box( array(
'id' => 'tour_metabox2',
'title' => esc_html__( 'Tour Itinerary', 'lombokmedia' ),
'object_types' => array( 'tour' ), // Post type
'context' => 'normal',
'priority' => 'high',
) );
$group_field_id = $lmd_metabox->add_field( array(
'id' => $prefix . 'demo',
'type' => 'group',
'description' => esc_html__( 'Rincian jadwal tour', 'cmb2' ),
'options' => array(
'group_title' => esc_html__( 'Hari {#}', 'cmb2' ),
'add_button' => esc_html__( 'Tambah', 'cmb2' ),
'remove_button' => esc_html__( 'Hapus', 'cmb2' ),
'sortable' => true,
// 'closed' => true,
),
) );
$lmd_metabox->add_group_field( $group_field_id, array(
'name' => esc_html__( 'Judul', 'cmb2' ),
'id' => 'titlex1',
'type' => 'text',
'default' => 'Hari ',
) );
$lmd_metabox->add_group_field( $group_field_id, array(
'name' => esc_html__( 'Rincian', 'cmb2' ),
'description' => esc_html__( 'Rincian itinerary hari itu', 'cmb2' ),
'id' => 'itinerary_desc',
'type' => 'wysiwyg',
'options' => array(
'wpautop' => true, // use wpautop?
'media_buttons' => false,
'textarea_rows' => get_option('default_post_edit_rows', 5),
),
) );
} //END
这就是我在singletour.php(只是行程部分(中显示它的方式
<h2 class="post-title"><?php _e('Jadwal Kegiatan', 'lombokmedia') ?> <a href="<?php the_permalink(); ?>" title="Continue reading <?php the_title(); ?>"><?php the_title(); ?></a>:</h2>
<?php
$entries = get_post_meta( get_the_ID(), 'tour_demo', true );
foreach ( (array) $entries as $key => $entry ) {
$title = $desc = '';
if ( isset( $entry['titlex1'] ) ) {
$title = esc_html( $entry['titlex1'] );
}
if ( isset( $entry['itinerary_desc'] ) ) {
$desc = wpautop( $entry['itinerary_desc'] );
}
echo '<div class="tour-item">';
echo '<h3>'.$title.'</h3>';
echo '<div>'.$desc.'</div>';
echo '</div>';
}
?>
我希望这能帮助你理解和理解它。