WordPress页面列表将控件添加到列表项

时间:2018-07-05 10:55:50

标签: php html wordpress advanced-custom-fields

因此,基本上,我有一个带有子类别页面的主父页面,其中每个子类别页面都有子页面,并且使用提供的代码,它可以很好地显示每个带有子项的父页面。

我想知道可以完全控制列表,因为仅对于父选项卡,我想使用ACF(高级自定义字段)添加图像,这意味着CMS中的父页面是否具有徽标( $tab_logo = get_field('parent_tab_logo');)将其添加到具有父名称的列表中。

代码:

<?php

// find parent of current page
if ($post->post_parent) {

    $ancestors = get_post_ancestors($post->ID);
    $parent = $ancestors[count($ancestors) - 1];

    //Display Parent post Title
    $parent_post_id = $parent;
    $parent_post = get_post($parent_post_id);
    $parent_post_title = $parent_post->post_title;

} else {
    $parent = $post->ID;
}

$children = wp_list_pages("sort_order=asc&title_li=&child_of=" . $parent . "&echo=0");

if ($children) { ?>
   <div id="side" class="col-lg-4 col-md-4 col-sm-12">

        <h4><?php echo $parent_post_title; ?></h4>
              <div class="row">
                <div class="col-lg-10 col-md-12 col-sm-12">
                  <ul id="side-navi" class="list-unstyled mb-0 ">

                      <?php echo $children; ?>

                  </ul>
                </div>
              </div>

    </div>

<?php } ?> 

当前结果:(示例)

  • 主要父页面

  • 父母1(主要父母PAGE的孩子)

  • child1(父母1的孩子)

  • child2(父母1的孩子)

  • 父母2(主要父母PAGE的孩子)

  • child1(父母2的孩子)

  • child2(父母2的孩子)

预期结果:(示例)

  • 主要父页面

  • 父母1(此页面中使用acf = $tab_logo = get_field('parent_tab_logo');的图片)

  • child1

  • child2

  • 父母2(此页面中使用acf = $tab_logo = get_field('parent_tab_logo');的图片)

  • child1

  • child2

2 个答案:

答案 0 :(得分:0)

这应该和ACF文档所说的一样简单。

检查父项时需要获取该字段,然后在相关部分中显示该字段,传递帖子ID也可能使您有些头疼,因此仅针对父项。

希望这会有所帮助。

<?php 

$parent_image = get_field('image', $post_id);

if( !empty($parent_image) ): ?>

<img src="<?php echo $parent_image['url']; ?>" alt="<?php echo $parent_image['alt']; ?>" />

<?php endif; ?>

答案 1 :(得分:0)

您应该能够执行以下操作,在该操作中,您将父帖子ID传递到get_field()函数中。根据在ACF中设置图像的方式,可能需要更新提取图像的方式。

<?php

// find parent of current page
if ($post->post_parent) {

  $ancestors = get_post_ancestors($post->ID);
  $parent = $ancestors[count($ancestors) - 1];

  //Display Parent post Title
  $parent_post_id = $parent;
  $parent_post = get_post($parent_post_id);
  $parent_post_title = $parent_post->post_title;
  $parent_image = get_field('parent_tab_logo', $parent_post_id);

} else {
  $parent = $post->ID;
}

$children = wp_list_pages("sort_order=asc&title_li=&child_of=" . $parent . "&echo=0");

if ($children) { 
  ?>
  <div id="side" class="col-lg-4 col-md-4 col-sm-12">

    <h4><?php echo $parent_post_title; ?></h4>
    <?php
      if( !empty($parent_image) ){
      ?>
      <img src="<?php echo $parent_image['url']; ?>" alt="<?php echo $parent_image['alt']; ?>" />
      <?php
      } 
    ?>


    <div class="row">
      <div class="col-lg-10 col-md-12 col-sm-12">
        <ul id="side-navi" class="list-unstyled mb-0 ">
          <?php echo $children; ?>
        </ul>
      </div>
    </div>
  </div>
  <?php 
} 
?>