Ist is_child () in wp 3.5.1 vorhanden?

Ich versuche herauszufinden, wie man zu einem is_child () Äquivalent gelangt; Ich möchte in der Lage sein, auf die übergeordnete Seite und ihre Kinder zu verweisen. Wie kann dies erreicht werden?

Mein Pseudocode ist …

if (is_page('pagename') || is_child('pagename')) {...} 

… das is_child () scheint jedoch nicht zu funktionieren. Ich möchte, dass es wahr wird.

Solutions Collecting From Web of "Ist is_child () in wp 3.5.1 vorhanden?"

Um nach einer bestimmten Eltern-ID zu $post->post_parent=="123" verwenden Sie $post->post_parent=="123" und ersetzen “123” durch die Eltern-ID Ihrer Wahl.

Ich habe gelernt, wie man das mit dem Widget Logic Plugin macht. Aus den Widget Logic-Notizen :

global $post; return (is_page('pagename') || ($post->post_parent=="13")); – Homepage ODER die Seite, die ein Kind von Seite 13 ist

Bearbeiten: Eine bessere Quelle ist das Testen für Unterseiten im Codex.

Dies wird eher nach Abstieg als nach strenger Eltern-Kind-Beziehung suchen:

 /** * Is the current page a descendent of page identified by the path (not slug). * A page is not a descendent of itself! * @param string $page_path The path of the page, eg mypage/mysubpage * @return boolean True if current page is a descednent of specified $page_path. False otherwise. */ function is_descendent_of( $page_path ){ if( !is_page() ){ return false; } $ancestors = get_post_ancestors( get_queried_object_id() ); $page = get_page_by_path( $page_path ); if( $page ) return in_array( $page->ID, $ancestors ); return false; } 

Und für strenge Eltern-Kind-Prüfung:

 /** * Is the current page a child of the page identified by the path (not slug). * A page is not a child of itself! Child != descendant. * @param string $page_path The path of the page, eg mypage/mysubpage * @return boolean True if current page is a child of specified $page_path. False otherwise. */ function is_child_of( $page_path ){ if( !is_page() ){ return false; } $page = get_page_by_path( $page_path ); $current_page = get_post(); if( $page ) return $current_page->post_parent == $page->ID; return false; } 

Nach dieser function suchend, um mit Widget-Logik zu verwenden, fand ich dieses Schnipsel , angepasst unten:

 /** * Check if a page is child of another * * @param mixed $page_id_or_slug Provide the parent ID or Slug * @return bool Whether the page is child or not of the given parent */ function is_child( $page_id_or_slug ) { global $post; if( !is_page() ) return false; # Slug provided, get ID if( !is_int( $page_id_or_slug ) ) { $page = get_page_by_path( $page_id_or_slug ); $page_id_or_slug = $page->ID; } return $post->post_parent == $page_id_or_slug; }