web-dev-qa-db-ja.com

ポストループを表形式で表示する方法

私は比較表を作成しています、そして、問題はwhileループにあります私は"tr"を適切な場所に置くことができません。私はこのようなレイアウトが必要です

<table>
<tr>
<td>post title 1</td>
<td>post title 2</td>
<td>post title 3</td>
</tr>
<tr>
<td>post content 1</td>
<td>post content 2</td>
<td>post content 3</td>
</tr>
<tr>
<td>post author 1</td>
<td>post author 2</td>
<td>post author 3</td>
</tr>
</table>

どうすれば私はそれが下の私のコードを参照してくださいオプションがないようだということを達成することができます

<div class="acadp">
    <table>
        <tr>
        <?php while( $acadp_query->have_posts() ) : $acadp_query->the_post();  ?>
        <td><?php the_title(); ?></td>
         <td><?php the_content(); ?></td>
        <td><?php the_author(); ?></td>
        <?php endwhile; ?>
        <tr>

 </table>
</div>

<?php wp_reset_postdata(); ?>
1
Taj Khan
<div class="acadp">
<?php 
$compare =[];
while( $acadp_query->have_posts() ) {
    $acadp_query->the_post(); $post_meta = get_post_meta( $post->ID ); 
    $category = wp_get_object_terms( $post->ID, 'acadp_categories' ); 
    $compare['Title'][] = get_the_title();
    $compare['Manufacturer'][] =  $category[0]->name; 

    $compare['Image'][] = get_the_acadp_listing_thumbnail($post_meta);


    if( count( $fields ) ){
        foreach( $fields as $field ) {
            $value = $post_meta[ $field->ID ][0];
            $compare[$field->post_title][] =  $value;
        }
    }

    $compare['URL'][] = "<a href='".get_the_permalink()."' class='btn btn-primary'>View Details</a>";
}

?>
<table class="table table-bordered">
<?php foreach ($compare as $feature => $value): ?>
    <tr>
        <th><?php echo $feature; ?></th>
        <td><?php echo implode("</td><td>",$value); ?></td>
    </tr>
<?php endforeach; ?>
</table>
</div>
<!-- end of the loop -->

<!-- Use reset postdata to restore orginal query -->
<?php wp_reset_postdata(); ?>
1
Taj Khan

あなたは3つの別々のループが必要です。各行に1つ、各投稿に新しい列が作成されます。

<div class="acadp">
    <table>
        <tr>
            <?php while( $acadp_query->have_posts() ) : $acadp_query->the_post();  ?>
                <td><?php the_title(); ?></td>
            <?php endwhile; ?>
        </tr>

        <tr>
            <?php while( $acadp_query->have_posts() ) : $acadp_query->the_post();  ?>
                <td><?php the_content(); ?></td>
            <?php endwhile; ?>
        </tr>

        <tr>
            <?php while( $acadp_query->have_posts() ) : $acadp_query->the_post();  ?>
                <td><?php the_author(); ?></td>
            <?php endwhile; ?>
        </tr>
    </table>
</div>

<?php wp_reset_postdata(); ?>
2
Jacob Peattie

ループ中の作者、タイトルなどの反響の代わりに、それらを配列に格納することもできます。それから、ループの後で、すべての配列をテーブル内の行としてエコーすることができます。

0
cjbj