从 WordPress 查询填充二维数组以生成 HTML 内容

问题描述 投票:0回答:2

(我想要这样)For Example。我不知道如何创建二维数组,我可以在其中添加部分标题并显示几个包,之后我需要显示带有徽标设计包等的徽标设计标题..

<section id="packages" data-aos-delay="0" data-aos-duration="0" data-aos="fade" class="page-section">

    <div class="pricing-header px-3 py-3 pt-md-5 pb-md-4 mx-auto text-center">
      <h1 class="display-4" data-aos="zoom-out-up">Packages</h1>
    </div>

    <div class="container">
      <div class="row justify-content-center mb-3">
        <?php foreach ($temp_packages as $package) : ?>
          <?php
          $title = $package['title'];
          $package_price = get_post_meta($package['id'], '_package_price', true);
          $package_subtitle = get_post_meta($package['id'], '_package_subtitle', true);
          $package_attributes = get_post_meta($package['id'], "_package_attributes", true);
          ?>
          <div class="col-lg-4 col-md-4 col-sm-12">
            <div class="card mb-4 box-shadow">
              <div class="card-header">
                <h2 class="my-3">$ <?php echo $package_price; ?></h2>
                <h4 class="my-1"><?php echo $title; ?></h4>
                <h6 class="mb-2"><?php echo $package_subtitle; ?></h6>
              </div>
              <div class="card-body">
                <ul class="list-unstyled">
                  <?php if (gettype($package_attributes) == 'array') : ?>
                    <?php foreach ($package_attributes as $attribute) : ?>
                      <li>
                        
                      </li>
                    <?php endforeach; ?>
                  <?php endif; ?>
                </ul>
                <a href="#contactUs" type="button" class="btn btn-lg btn-block btn-primary">Enquire</a>
              </div>
            </div>
          </div>
        <?php endforeach; ?>
      </div>
    </div>
  </section>
<?php endif; ?>
php multidimensional-array wordpress-theming
2个回答
0
投票

在 PHP 中创建 2D 数组实际上非常简单:

<?php

$myArray = [
   [
      "title" => "foo",
      "desc" => "bar"
   ],
   [
      "title" => "foo2",
      "desc" => "bar2"
   ],
   [
      "title" => "foo3",
      "desc" => "bar3"
   ],
   [
      "title" => "foo4",
      "desc" => "bar4"
   ]
];

echo $myArray[0]["title"]; // foo

foreach($myArray as $value) {
   echo $value["title"];
}

// foo foo2 foo3 foo4

这就是您要找的吗?


0
投票

我刚刚创建了一个数组PHP:Arrays,其中包含您需要的所有内容。这是我的数组,其中包含一个示例条目:

$temp_packages = Array(
    [
        'id' => 12345,
        'title' => 'Some Title',
        'subtitle' => 'Some Subtitle',
        'price' => 129.99,
        'attributes' => [
            'An Attribute',
            'Some more Stuff',
            'foo',
            'bar'
        ]
    ],
);

$temp_packages
的内容可能会存储在数据库中并从那里获取。

之后,您可以使用您的代码来生成您的部分。我改变了一点,所以它对我有用:

<section id="packages" data-aos-delay="0" data-aos-duration="0" data-aos="fade" class="page-section">
<div class="pricing-header px-3 py-3 pt-md-5 pb-md-4 mx-auto text-center">
    <h1 class="display-4" data-aos="zoom-out-up">Packages</h1>
</div>
<div class="container">
    <div class="row justify-content-center mb-3">
    <?php foreach ($temp_packages as $package) : ?>
        <div class="col-lg-4 col-md-4 col-sm-12">
        <div class="card mb-4 box-shadow">
            <div class="card-header">
            <h2 class="my-3">$ <?php echo $package['price']; ?></h2>
            <h4 class="my-1"><?php echo $package['title']; ?></h4>
            <h6 class="mb-2"><?php echo  $package['subtitle']; ?></h6>
            </div>
            <div class="card-body">
            <ul class="list-unstyled">
                <?php if (gettype($package['attributes']) == 'array') : ?>
                <?php foreach ($package['attributes'] as $attribute) : ?>
                    <li>
                    <?php echo $attribute; ?>
                    </li>
                <?php endforeach; ?>
                <?php endif; ?>
                </ul>
            <a href="#contactUs" type="button" class="btn btn-lg btn-block btn-primary">Enquire</a>
            </div>
        </div>
        </div>
    <?php endforeach; ?>
    </div>
</div>
</section>
© www.soinside.com 2019 - 2024. All rights reserved.