如何查询页面,获取数据,然后查询该页面的子页面

时间:2012-11-20 作者:davebowker

基本上,我想向父级查询一组自定义字段数据,并将其回显出来。然后,我想查询该父级的所有子页面并回显更多数据。

最好的方法是什么?

父级的顶级查询,然后在该查询的子级中查询子级

  • 2个独立的顶级查询
  • 其他
  • 最佳使用wp_queryget_posts 还是两者兼而有之?

    更新:看起来我可能需要更好地解释一下。

    如果页面结构如下所示:

    Page Parent ID(2)
     1. Child 1 ID(3)
     2. Child 2 ID(4)
     3. Child 3 ID(5)
     4. Child 4 ID(6)
    
    父查询如下所示:

    $parent = new wp_query(post_id=2)
    while
            //do page parent stuff, eg get the_title(); of the parent page
    endwhile
    
    我是否必须运行另一个wp\\u query实例来获取子页面,使用post_parent=2, 或者我是否可以以某种方式重新使用原始父查询,并使用额外的参数对其进行扩展,以减少查询调用?

    当子查询使用与父查询相同的参数加上更多的参数时,我在这里寻找wp\\U查询的优化。谢谢

    2 个回复
    SO网友:s_ha_dum

    我不理解您在“子级”查询和“顶级”查询之间所做的区分,但这就是我为页面提取子级的方式。

    $children = get_children(
        array(
            \'post_parent\'   => $servid,
            \'post_type\'     => \'page\',
            \'post_status\'   => \'publish\',
            \'orderby\'       => \'menu_order\',
            \'order\'         => \'ASC\'
    )); ?>
    
    或。。。

    $page_children = get_pages(
     array(
      \'child_of\'    => $post->ID,
      \'post_type\'   => \'page\',
      \'sort_column\' => \'menu_order\',
      \'order\'       => \'ASC\'
     ));
    
    在这两种情况下,我都将父帖子的ID作为第一个参数发送。

    http://codex.wordpress.org/Function_Reference/get_children

    http://codex.wordpress.org/Function_Reference/get_pages

    SO网友:Zach

    下面是一个使用类别而不是页面的示例,但您可以使用父级信息查询信息within 另一个循环:

    // checking current taxonomy to see if it has child categories if it doesn\'t then we\'re out of sub categories and should show the current categories products
    $args = array(
        \'type\'       => $taxfunc_post_type,
        \'hide_empty\' => 1,
        \'orderby\'    => \'name\',
        \'order\'      => \'ASC\',
        \'taxonomy\'   => $taxfunc_tax_name
    );
    
    $categories = get_categories($args);
    $categories = wp_list_filter($categories,array(\'parent\'=> $term_id));
    
    foreach($categories as $category) {
    
        // setup the cateogory ID
        $cat_id = $category->term_id;
        // Get category name
        $cat_name = $category->name;
        // Get category count
        $cat_count = $category->count;
        //get the category url
        $cat_url = get_term_link( $category->slug, $taxfunc_tax_name );
    
        echo \'<div class="cat-block">\';
        echo \'<header>\';
        echo "<h3>";
        echo $cat_name;
        echo "</h3>";
        if ($cat_count > 0) {
            echo \'<a href="\'.$cat_url.\'">\';
            printf( _n(\'1 profile\', \'%s profiles\', $cat_count,\'mouldings\' ),$cat_count );
            echo \'</a>\';
        }
    
        $subcat_args = array(
            \'type\'       => $taxfunc_post_type,
            \'hide_empty\' => 1,
            \'orderby\'    => \'name\',
            \'child_of\'   => $cat_id,
            \'order\'      => \'ASC\',
            \'taxonomy\'   => $taxfunc_tax_name,
            \'pad_counts\' => 1
        );
        $subcategories = get_categories($subcat_args);
        $subcat_count = count($subcategories);
        if ($subcat_count > 0) { echo \' <a href="\'.$cat_url.\'">\'; printf( _n(\'1 subcategory\', \'%s subcategories\', $subcat_count,\'mouldings\' ),$subcat_count ); echo \'</a>\'; }
        echo \' <a class="view-all" href="\'.$cat_url.\'">\'.__(\'View all\',\'mouldings\').\'</a>\';
        echo \'</header>\';
    
        echo \'</div>\';
    }
    
    在上面,我指定child_of 父类别的参数。如果有帮助,请告诉我。

    结束

    相关推荐

    是否将admin startPage更改为Pages-Page?

    当您登录到管理员时,默认情况下会看到欢迎页面。我的一个客户请求默认情况下查看“页面”页面,他在其他地方看到了它。这是否可能,如果可能,如何实现?尝试搜索,但未找到相关内容,在设置中也未找到。