在知道父ID的情况下,从子弹头中获取子ID

时间:2014-01-03 作者:Will Ashworth

我有一个需要从中获取数据的层次结构。这是我在了解父母的同时需要得到的孩子(用鼻涕虫的名字)。

Highest Known Parent Page (slug : \'parent\')
|_ Child 1 (slug : \'child-1\')
   |_ Page 1 (slug : \'page-1\')
   |_ Page 2 (slug : \'page-2\')
|_ Child 2 (slug : \'child-2\')
   |_ Page 1 (slug : \'page-1\')
   |_ Page 2 (slug : \'page-2\')
|_ Child 3 (slug : \'child-3\')
   |_ Page 1 (slug : \'page-1\')
   |_ Page 2 (slug : \'page-2\')
理想情况下,我正在尝试得到一个一致返回“page-2”的结果,并且我已经在一个知道“child-1”、“child-2”、“child-3”等的循环中工作。我只是不知道如何查询第三级。有什么想法吗?

我可能已经考虑过了,因为如果你已经知道了一个slug的家长,那么可能有一种简单的方法可以从slug中获得一个页面的ID。当然,如果“第2页”由于某种原因不存在,我需要编写应急脚本,但我首先需要获得正确的数据。

UPDATE:

这是我现在正在使用的代码。我知道模型。我认识模特儿。我试图让每一个孩子都在所有模范孩子的下面。例如,“规格”页面。所以我希望有5-6个不同的“规格”页面返回给我。。。因此,我可以轻松地(动态)链接到它们。

<?php
// get models id
$models = get_page_by_path( \'models\' );

// get children of models page
$args = array(
    \'post_type\'      => \'page\',
    \'posts_per_page\' => -1,
    \'post_parent\'    => $models->ID,
    \'order\'          => \'ASC\',
    \'orderby\'        => \'menu_order\'
);
$children_posts = new WP_Query( $args );
?>

4 个回复
SO网友:Brian Fegter

您应该使用pagename WP\\U查询的参数以及post_parent. 使用将查询限制为一篇文章posts_per_page.

$parent_id = get_the_ID();
$args = array(
    \'post_type\'      => \'page\'
    \'pagename\'       => \'page-2\',
    \'post_parent\'    => $parent_id,
    \'posts_per_page\' => 1
);
$posts = get_posts( $args );
$child = isset( $posts[0] ) ? $posts[0] : false;
if( $child ){
    //Do Something
}
理论上,这应该使用父ID通过slug呈现所需的post。

SO网友:alxndrbauer

你已经看过了吗get_page_children?您需要将子页面的id和$children\\u posts传递给它,它将返回它的所有子页面。。。

您需要的是:child-1->ID和一个包含child-1、child-2等的数组

SO网友:Arman Gharibi
<?php
// get models id
$models = get_page_by_path( \'models\' );

// get children of models page
$args = array(
    \'post_type\'      => \'page\',
    \'posts_per_page\' => -1,
    \'post_parent\'    => $models->ID,
    \'order\'          => \'ASC\',
    \'orderby\'        => \'menu_order\'
);

$children_posts = new WP_Query( $args );
SO网友:Snail

我希望这对您有所帮助,您需要获取家长页面的ID,然后像这样开始循环

<?php

    $args = array( \'posts_per_page\' => -1, \'post_type\' => \'page\', \'post_parent\' => 52, \'orderby\' => \'modified\');
    $loop = new WP_Query( $args );

    while ( $loop->have_posts() ) : $loop->the_post();

            // Get next child
            $args2 = array( \'posts_per_page\' => -1, \'post_type\' => \'page\', \'post_parent\' => get_the_ID(), \'orderby\' => \'modified\');
            $loop2 = new WP_Query( $args );

            while ( $loop->have_posts() ) : $loop->the_post();

                // Your code

?>

结束

相关推荐

如何使用jQuery为WordPress拖拽后获取Widget ID?

我创建了带有选择选项图像的自定义小部件,但第一次选择选项图像在保存后并没有显示,此功能工作正常,我只需要在侧边栏中拖动后加载此功能,然后加载功能?jQuery(document).ready(function() { jQuery(\'body\').on(\'change\', \'.selector\', change_image); function change_image(){ var $path = jQuery(this).f