코딩

워드프레스 자식 페이지 링크

코딩저니 렉스 2022. 12. 12. 21:50

자식 페이지가 있는 경우에 자식 페이지 목록을 보여주기 위해 wp_list_pages(); 기능을 사용할 수 있습니다.

하지만 그냥 사용하게 될 경우 모든 페이지가 표시됩니다.

사이트에 있는 모든 페이지가 표시되고 심지어 'Pages'라는 제목까지도 기본 텍스트로 표시가 됩니다.

따라서 array기능에 더해 associative array까지 함께 사용할 필요가 있습니다.

'A' => 'B' A는 B가 되도록 사용할 수 있는 기능입니다.

하지만 echo에서 'A'만 넣으면 아래서 볼 수 있는 것처럼 B가 표시됩니다.

이 경우에는 'dog'이기 때문에 사이트에 'bark'가 표시됩니다.

우선 wp_list_pages에 associate array를 사용하겠습니다. 

첫 번째로 리스트의 제목인 'page'를 없애기 위해 'title_li' => NULL 을 사용하였습니다. 

이렇게 하여 없어진 결과물을 확인할 수 있습니다.

 

또한 child_of 기능에서 페이지 ID 3만 테스트로 표시하여 고정으로 특정한 페이지가 아래처럼 표시되게 할 수 있습니다.

그러나 언제나 그러하듯이 코딩은 하드 코딩 즉 고정으로 숫자를 입력하는 것이 아니라 다이나믹 코딩으로 Variable과 기능을 사용하여 페이지마다 맞게 표시되게 할 필요가 있습니다.

따라서 위와 같이 $findChildrenOf라는 variable과 $theParent variable을 함께 사용하게

됩니다. 

$theParent 값이 1이상 즉 자식 페이지(부모 페이지가 있는 경우)라면 

$findChildrenOf = $theParent; (이 코드는 자식 페이지일 경우에만 한다) 

else = 또는 이라는 기능. 

$findChildrenOf = get_the_ID(); (새로 만든 variable)

 

위에 코드로 자식 페이지에서 여전히 자식 페이지 메뉴를 볼 수 있도록 함.

 

*$theParent variable은 이전에 만든 variable 입니다. (아래 참조) 

현재 페이지의 부모 페이지 ID를 가지고 오는 variable. 부모 페이지에 있다면 더 이상 부모 페이지가 없기 때문에 0 값을 불러오고 false가 된다.

이렇게 하여 각 페이지에 맞는 자식 페이지를 표시되게 합니다.

또한 부모 페이지 링크가 메뉴에서 작동할 수 있도록 php코드를 사용해 줍니다.

get_the_title($theParent); 기능을 통해 메뉴에서 부모 페이지 제목을 표시되게 합니다.

그리고 get_permalink($theParent); php 코드와 html 코드인 a href를 사용하여 해당 페이지의 링크까지 가지고 옵니다. 따라서 해당 부모 페이지 제목 메뉴를 누르면 해당 페이지로 이동하게 됩니다.

$testARray = get_pages(array(

'child_of' => get_the_ID() 자식 페이지가 있는 경우 ID를 가지고 오지만 없는 경우 코드가 작동하지 않는다.

if 기능에 A or B. or 기능을 사용할 수 있습니다. 두 가지 중 하나의 조건을 가지고 온다는 뜻입니다.

 

더 나아가 자식 페이지가 없는 그냥 페이지 같은 경우에는 메뉴 목록이 아예 표시되지 않도록 메뉴 부분 전체를 php코드에 감싸게 됩니다.