워드프레스에서 상위 페이지의 모든 하위 페이지를 가져오려면 어떻게 해야 합니까?
예:
About
--- Menu 1
--- Menu 2
--- Menu 3
--- Menu 4
페이지 안에 있으면...하위 페이지를 가지고 있어요그러나 메뉴 1로 들어가면 모든 페이지가 사라집니다.
내가 필요한 것은 항상 상위 페이지를 보는 것이다.
현재 이 코드를 가지고 있습니다.
<? if (is_page()) {
$g_page_id = $wp_query->get_queried_object_id();
wp_list_pages("depth=4&title_li=&child_of=".$g_page_id."&sort_column=menu_order");
}
?>
감사합니다!
해결했다
이거 쓰고 일 잘해요!
<?php
if ( is_page() ) :
if( $post->post_parent ) :
$children = wp_list_pages( 'title_li=&child_of='.$post->post_parent.'&echo=0' );
else;
$children = wp_list_pages( 'title_li=&child_of='.$post->ID.'&echo=0' );
endif;
if ($children) : ?>
<div class="title">
<?php
$parent_title = get_the_title( $post->post_parent );
echo $parent_title;
?>
<span></span>
</div>
<ul>
<?php echo $children; ?>
</ul>
<?php
endif;
endif;
?>
여기 있어요.작가에게는 조금 늦었지만, 사람들은 여전히 답을 얻기 위해 이곳에 올 것이다;-)
<?php
// determine parent of current page
if ($post->post_parent) {
$ancestors = get_post_ancestors($post->ID);
$parent = $ancestors[count($ancestors) - 1];
} else {
$parent = $post->ID;
}
$children = wp_list_pages("title_li=&child_of=" . $parent . "&echo=0");
if ($children) {
?>
<ul class="subnav">
<?php
// current child will have class 'current_page_item'
echo $children;
?>
</ul>
<?php
}
?>
이 문제를 해결하는 가장 쉬운 방법은get_children()
기대했던 대로 되는 것 같아요.상위 페이지의 하위 페이지를 반환합니다.
get_children()
기본적으로는 를 위한 래퍼입니다.WP_Query
학급.
이렇게 쓸 수 있어요
$child_args = array(
'post_parent' => $post->ID, // The parent id.
'post_type' => 'page',
'post_status' => 'publish'
);
$children = get_children( $child_args );
현재 투고된 자식을 반송하려면 반송할 수 있습니다.$post->ID
처럼'post_parent'
그렇지 않으면 원하는 ID를 사용합니다.
/* Fetch all child pages of a parent page*/
$pages = get_pages(
array (
'parent' => '-1',
'child_of' => 'parent_id', /* Return child of child for current page id */
'post_type => 'page',
'post_status' => 'publish',
);
$ids = wp_list_pluck( $pages, 'ID' );
/* Return page IDs in array format */
/* You can retrieve "post_title", "guid", "post_name" instead of "ID" */
/* Fetch only one level child pages of a parent page */
$pages = get_pages(
array (
'parent' => 'parent_id',
'post_type => 'page',
'post_status' => 'publish',
);
$ids = wp_list_pluck( $pages, 'ID' );
/* Return page IDs in array format */
/* You can retrieve "post_title", "guid", "post_name" instead of "ID"
언급URL : https://stackoverflow.com/questions/16488429/how-to-get-all-child-pages-of-a-parent-page-in-wordpress
'programing' 카테고리의 다른 글
WordPress는 이미지 메타 데이터를 어디에 저장합니까? (0) | 2023.03.01 |
---|---|
HTTP를 통해 javascript로 바이너리 데이터 전송 (0) | 2023.03.01 |
선택 목록의 출력을 부모 목록에 종속시키려면 어떻게 해야 합니까? (0) | 2023.02.18 |
Jackson Json Type Info 。As.EXTERNAL_PROPERTY가 예상대로 작동하지 않습니다. (0) | 2023.02.15 |
Date Time을 사용할 수 있는 이유MinValue가 UTC보다 이전 시간대로 일련화되지 않았습니까? (0) | 2023.02.15 |