サポート » 使い方全般 » tableの同じ値を結合したい

  • お世話になっております。

    現在、カスタム投稿「money」のカスタムフィールドで入力した値を<table>を使用して、ループ処理内で料金表を表示させようとしています。
    そこで、一番右の列で同じ値のものをrowspanで結合させたいと思っているのですが、ループ処理中なため、すべての列にrowspanが付加され、見た目が崩れてしまいます。

    カスタム投稿タイプ:money
    タクスノミー(スラッグ):first、plan
    WordPressバージョン:3.5.1

    ↓現在の処理内容

    <table id="money">
    	<tr>
    		<td class="item">○○</td>
    		<td class="item">△△</td>
    		<td class="item">××</td>
    		<td class="item">□□</td>
    	</tr>
    	<?php
    	$paged = get_query_var('paged');
    		$args = array(
    		'post_type' => array('money'),
    		'posts_per_page' =>-1,
    		'paged' => $paged,
    		'order' => 'ASC'
    		);
    	$loop = new WP_Query($args); ?>
    	<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    		<?php
    		$postID = get_the_ID();
    		$terms = get_the_terms($postID,'money_category');
    		foreach ( $terms as $term ) {
    		$tslug = esc_html($term->slug);
    		} ?>
    		<?php if ($tslug == 'first'): ?>
    			<?php $first = post_custom('■■'); ?>
    		<?php endif; ?>
    		<tr>
    			<?php if ($tslug == 'plan'): ?>
    				<td class="plan"><?php the_title();?></td>
    				<td><?php echo post_custom('△△'); ?></td>
    				<td><?php echo post_custom('××'); ?></td>
    				<td rowspan=??><?php echo $first ?></td>
    			<?php endif; ?>
    		</tr>
    	<?php endwhile; wp_reset_query(); ?>
    </table>

    WordPressに対してまだまだ初心者なので、ご教授いただければ幸いです。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • モデレーター jim912

    (@jim912)

    WordPressというよりは、rowspanを書き出すためにどういうデータが必要で、それをどのように導き出すかというロジック的な問題です。

    現状のコードでは、その後に何行同じ数値が並ぶかはわかりません。つまりこのままでは、rowspanの値を書き出すことはできないのです。
    では、どうすればよいかというと、書き出す前に一度ループを回しておいて、rowspanの値を導き出すようにしなければなりません。

    それと、上記コードでは、カスタム投稿タイプmoneyを全て取得した上で、カスタム分類money_categoryにfirstがあるもののみ書き出しているようですが、取得する段階で、カスタム分類の条件を含めた方が効率的なように思います。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「tableの同じ値を結合したい」には新たに返信することはできません。