Отримання лише прямих дочірніх сторінок у WordPress за допомогою get_pages


20

Я намагаюся отримати всі прямі діти сторінки. Але я отримую і всіх дітей, і онуків. Будь-які ідеї?

PHP Джерело:

$args = array( 
        'child_of' => $post->ID, 
        'parent ' => $post->ID,
        'hierarchical' => 0,
        'sort_column' => 'menu_order', 
        'sort_order' => 'asc'
);
$mypages = get_pages( $args );

foreach( $mypages as $post )
{

$post_tempalte = the_page_template_part();

get_template_part( 'content' , $post_tempalte );
}

Моє $argsповинно бути правильним згідно з документацією , але це абсолютно ігнорує parentі hierarchical.

Структура моєї сторінки така:

Батько
-Child 1
-Child 2
--Child 1 до дитини 2
--Child 2 до дитини 2
-Child 3

І я хочу лише отримати child 1, child 2і child 3.


Спробуйте також розглянути depthваріант. Ще одне рішення, яке я знайшов і, здається, працює, - $mypages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID); це ви можете змінити sort_columnта, sort_orderяк потрібно.
Rohit Pande

@RohitPande depthне допомогло мені на всіх, встановлюючи child_ofі parentдо того ж це було.
Волкер Е.

Відповіді:


12

Перевірте параметр "батьків". Здається, що після назви є пробіл.


О, Боже. Такий дурний. Але дякую, що врятувало мене деякий час. :)
jamietelin

3

За допомогою параметра «глибина» функції «wp_list_pages» або функції «get_pages» ми можемо визначити, скільки рівнів ми хочемо отримати. Тож тут я покажу весь перший дочірній рівень поточної сторінки.

            <?php global $post;
                    wp_list_pages( array(
                    'child_of' => $post->ID, // Only pages that are children of the current page
                    'depth' => 1 ,   // Only show one level of hierarchy
                    'sort_order' => 'asc'
                ));
            ?>

Здається, у функції get_pages немає аргументу глибини або, принаймні, це не задокументовано: developer.wordpress.org/reference/functions/get_pages .
kloddant
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.