Intereting Posts
Как обновить пользовательский вариант блога? WordPress «Категории для конвертеров тегов» не работает. Вместо указания import.php персонализированные почтовые индексы не сохраняются Отзывчивые изображения в слайдере Bootstrap 4 значение php value numeric Случайный цикл с кодом для предотвращения дублирования вывода не возвращает никакого вывода время от времени WordPress удалить подменю WP_Query возвращается пустым, если meta_query имеет более 7 значений Знать, когда обновление (ы) выполнено Пользовательская таксономия не отображается Функция сканирования изображения, прикрепления его к сообщению, установка его как признака Добавление аватаров / gravatar в блог WordPress get_posts не находит аргумент: post_name Определить максимальное количество изменений для типа публикации? Как вы загружаете js и стиль ресурсов из CDN с локальным резервным использованием wp_enqueue_scripts?

Функция для поиска предка пользовательского сообщения типа 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"