输出foreach PHP作为两列表

时间:2015-10-01 15:57:16

标签: php html foreach woocommerce tabular

我试图让Woocommerce中的这个PHP输出到一个表而不是一个大的列表。我尝试过HTML表格标签,但它只放置第一个" foreach"结果在表中。

add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {

// Adds the new tab

$tabs['test_tab'] = array(
    'title'     => __( 'Amenities', 'woocommerce' ),
    'priority'  => 20,
    'callback'  => 'woo_new_product_tab_content'
);

return $tabs;

}
function woo_new_product_tab_content() {

// The new tab content

echo '<h2>Amenities</h2>';
echo '<h5>On-Site</h5>';
  $authorvalues = get_the_terms( $product->id, 'pa_onsite');
    echo '<ul>';
  foreach ( $authorvalues as $authorvalue ) {
   echo '<li>'.$authorvalue->name.'</li>';
    echo '</ul>';
        }
echo '<h5>Off-Site</h5>';
  $authorvalues = get_the_terms( $product->id, 'pa_offsite');
    echo '<ul>';
  foreach ( $authorvalues as $authorvalue ) {
   echo '<li>'.$authorvalue->name.'</li>';
    echo '</ul>';
        }
}

结果现在看起来像这样:

<br/>Amenities<br/>
On-Site
<ul><li>Playground</li></ul>
Off-Site
<ul><li>Golf</li>
<li>Hiking</li>
<li>Outdoor pool</li>
<li>Skiing</li>
<li>Spa</li>
<li>Tennis</li></ul>

虽然需要它在两列中。

1 个答案:

答案 0 :(得分:0)

html是一种描述文本语义的语言。 表适用于适合表的数据。 你真的想要列表,但是以不同的格式,尝试一些css

<!DOCTYPE html>
<html>
    <head>
    <title>TODO supply a title</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .container {
        float: left;
        margin-right: 30px;

        }
        .container ul{
        list-style: none;
        padding: 0;
        }
        .container li{
        border-top: 1px solid black;
        margin: 0;
        }
        .container li:first-child{
        border-top: 0;
        }
    </style>
    </head>
    <body>
    <h1>Amenities</h1>
    <div class="container">
        <h2>On-Site</h2>
        <ul>
        <li>Playground</li>
        </ul>
    </div>
    <div class="container">
        <h2>Off-Site</h2>
        <ul>
        <li>Golf</li>
        <li>Hiking</li>
        <li>Outdoor pool</li>
        <li>Skiing</li>
        <li>Spa</li>
        <li>Tennis</li>
        </ul>

    </div>

    </body>
</html>

我为<style>添加了.container并将两个列表包含在<div>重要的class="container"属性中,该属性必须与样式匹配。 有更好的方法来包含样式,但它是一个很好的开始方式。