Функция для поиска предка пользовательского сообщения типа wordpress

Недавно я много боролся с CPT, с которым я работаю в WordPress.

У меня есть cpt-установка, называемая кошками, и переписала url, чтобы 'rewrite' => array( 'slug' => 'our-animals/rehome-a-cat', 'with_front' => false) поэтому структура – это наши животные > rehome-a-cat> кошки (отдельная страница cpt).

Я хочу показать меню на каждой из этих страниц, где будут показаны предки (наши животные) и любые дети минус каждый отдельный cpt. так, например, если бы я добавил страницу rehome-a-dog и собак cpt меню для наших животных, rehome-a-dog, rehome-a-cat и каждого indivdual кошки и собаки cpt покажут, наши-anmals, rehome -a-dog и rehome-a-cat.

В настоящее время у меня есть fucntion найти предка страницы, а затем отображает меню, как я хочу:

 function my_get_ancestor_id($post) { if ( $post->post_parent ) { $ancestors = get_post_ancestors($post->ID); $root = count($ancestors)-1; $parent = get_post($ancestors[$root]); } else { $parent = $post; } return $parent->ID; } 

и функция для создания моего меню

 if ( ! function_exists( 'wpb_list_child_pages' ) ) { function wpb_list_child_pages() { global $post; $parent_id = my_get_ancestor_id($post); if ( is_page() && $post->post_parent ){ $args = array( 'sort_order' => 'ASC', 'sort_column' => 'menu_order', 'hierarchical' => 1, 'exclude' => '', 'child_of' => $parent_id, 'parent' => -1, 'exclude_tree' => '', 'number' => '', 'offset' => 0, 'post_type' => 'page', 'post_status' => 'publish' ); $childpages = get_pages($args); }else{ $args = array( 'sort_order' => 'ASC', 'sort_column' => 'menu_order', 'hierarchical' => 1, 'exclude' => '', 'child_of' => $parent_id, 'parent' => -1, 'exclude_tree' => '', 'number' => '', 'offset' => 0, 'post_type' => 'page', 'post_status' => 'publish' ); $childpages = get_pages($args); } if ( $childpages ) { $string = '<ul class="hh-rightmenu-ul">'; foreach($childpages as $page){ $string .= '<a href="'.get_page_link( $page->ID ).'"><li class="hh-rightmenu-li"><div class="hh-rightmenu-li-inner">'.$page->post_title.'</div></li></a>'; } $string .= '</ul>'; } echo $string; } 

}

Теперь на наших животных и rehome-a-cat это отлично работает, но я думаю, потому что у cpt cats нет фактического физического родителя или что-то, что функция my_get_ancestor_id не работает, когда вы переходите на каждый CPT, и ни одно меню не отображается. Второе условие в моей функции меню отображает элементы управления меню на сообщениях, как если бы я поставил 106 (наш идентификатор животных) вместо 'child_of' => $parent_id, он показывает меню, которое я хочу.

Поэтому в основном я изо всех сил пытаюсь найти способ в своей функции предков, чтобы, возможно, получить предка из slug, если его CPT, поскольку он не может найти родительский идентификатор.

Есть предположения?

Любая помощь оценивается.

заранее спасибо.

Ян

Solutions Collecting From Web of "Функция для поиска предка пользовательского сообщения типа wordpress"