it-swarm-ko.tech

하위 페이지 목록을 작성하고 입력을 사용하면 어떻게됩니까?

다음과 같은 페이지 구조가 있습니다.

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

모든 자동차 (자동차의 하위 페이지)의 Cars 페이지에서 자동차 목록을 생성하고 싶습니다. 내가 어떻게 할까? 목록은 기본적으로 모든 자동차를 알파벳순으로 표시해야하는 하위 메뉴입니다 (참고로 '손주'에 대한 링크가 필요하지 않습니다 - 사진, 정보). 또한 각 자동차 페이지에서 Custom Field 데이터를 가져와 해당 페이지 옆의 링크에 붙여 넣어야합니다. 가능한가요?

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