如何将所有发布的WordPress页面显示为下拉选项?

olhwl3o2  于 2022-12-03  发布在  WordPress
关注(0)|答案(1)|浏览(152)

我想显示我的WordPress内的所有已发布的网页作为一个下拉选项。
我已经尝试了下面的代码:

<div class="header-right">
    <?php
    $pages = get_pages();
    $posts = get_pages(array(
        'post_status'  => 'publish',
    ));
    $array_pages = (array)$posts;
    ?>
    <select name="per1" id="per1">
      <option selected="selected">Choose one</option>
      <?php
        foreach($array_pages as $name) { ?>
          <option value="<?= $name['name'] ?>"><?= $name['name'] ?></option>
      <?php
        } ?>
    </select>

但是,这对我不起作用。我看到这样的事情:https://prnt.sc/Jn-ZS98TmKFa
有人能分享一些见解吗?谢谢!!

qoefvg9y

qoefvg9y1#

get_pages()返回WP_Post对象的数组。因此,要访问帖子标题或帖子ID,您需要使用->。例如,$object-〉post_title。请参阅下面修改后的代码。

<div class="header-right">
  <?php
  $pages = get_pages();
  $posts = get_pages(
    array(
        'post_status' => 'publish',
    )
  );
  $array_pages = (array) $posts;
  ?>
  <select name="per1" id="per1">
    <option selected="selected">Choose one</option>
    <?php
    foreach ( $array_pages as $page ) {
        ?>
        <option value="<?php echo esc_attr( $page->ID ); ?>"><?php echo esc_html( $page->post_title ); ?></option>
        <?php
    }
    ?>
  </select>
</div>

相关问题