如何以表格格式显示POST循环?

时间:2018-07-13 作者:Taj Khan

我正在创建一个比较表,问题在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(); ?>

3 个回复
最合适的回答,由SO网友: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(); ?>
SO网友:Jacob Peattie

您需要3个单独的循环。每行一个,每个帖子创建一个新列:

<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(); ?>

SO网友:cjbj

在循环过程中,您也可以将它们存储在数组中,而不是重复作者、标题等内容。然后在循环之后,可以将每个数组作为表中的一行进行回显。

结束

相关推荐

需要有关wordpress和php的帮助

我的一个朋友让我对他的网站做一些小的修改(更改每页的标题,为电话号码添加一个可点击的移动链接,在页脚中添加营业时间,在导航栏中添加滚动菜单…)我对HTML和CSS很熟悉,但对Php不太熟悉。我似乎找不到每个页面的HTML文件。我读到应该是像index这样的php文件。但是,如何对这些内容进行html更正?我可以通过Bitbucket访问主题和文件,但我有点被困在这里了。谁能帮帮我吗?谢天谢地