it-swarm.cn

如何生成子页面列表,并使用它们的一些自定义字段?

我有这样的页面结构:

-Home
-Cars
  -Volvo 640
   - Pics
   - Info
  -Porsche 911
   - Pics
   - Info

我想在所有汽车的汽车页面上生成汽车列表(这是汽车的子页面)。我该怎么做?该列表基本上是一个子菜单,应按字母顺序显示所有汽车(注意,我不需要链接到'孙子' - 图片,信息)。我还需要从每个车页获取自定义字段数据,并将其放在页面链接旁边..这可能吗?

1
cannyboy

您可以使用get_pages来执行此操作,如下所示:

<?php
    $args = array(
        'post_type' => 'page',
        'child_of' => 7,
        );
    $postobj = get_pages($args);
    foreach($postobj as $item){
        $dir = get_bloginfo('template_directory'); // Theme directory
        $title = $item->post_title;
        $parent = $item->post_parent;
        $id = $item->guid;
        $name = $item->post_name;

到达此处后,您可以提取自定义字段并将其放入变量中。

        $model_number = get_post_meta($item->ID, 'model_number', true);

我会使用某种if语句来构建那些顶级标题。例如,您可以这样做:

            if($model_number == true){
                echo stuff;
            } else {
                echo other stuff;
        }
    }
?>

这很粗糙,但我认为这可以让你走很长的路。从本质上讲,您是以编程方式构建标题并返回所有内容以进行打印。关键是格式化所有内容并正确设置条件。

1
nickmjones

wp_list_pages()函数可以为您提供子页面列表。但是,从每个页面中抓取自定义字段数据需要单独的查询和更多工作。但这是一个开始:

$args = array(
    depth => '1',
    child_of => '123'
);

wp_list_pages( $args );

这将为您提供指向页面ID 123的所有子页面的链接列表.depth规范也是为了防止检索孙页面。

就像我之前说过的那样,获取自定义字段数据有点棘手。您需要首先获取每个子页面的页面ID(可能使用query_posts())并将它们存储在一个数组中。然后,您将遍历该数组并依次从每个页面获取自定义字段数据。

所以这是可行的...但我无法提供快速解决方案。

1
EAMann