Intereting Posts
Перемещение / перетаскивание метабокса устраняет содержимое TinyMCE Простой seo-friendly персонализированный url $ _GET переписывает с htaccess Как создать пользовательскую страницу в WordPress? Проблемы с созданием плагина tinyMCE, который создает настраиваемую ссылку Числовая разбивка на страницы не работает с изменением константы Выберите уникальные сообщения для списка тегов Мне нужно сделать перенаправление в functions.php Как настроить отношения с помощью категорий в WordPress? Доступ к последнему времени посещения сообщения Пользовательский мета-ящик в редакторе настраиваемого типа сообщений не работает Минималистский график Пользовательская функция для регистра пользователя в wp? Как добавить разбивку на страницы в цикл post на пользовательской вкладке BuddyPress Как получить возвращаемое значение wp.media ({frame: 'post?}) Во всех случаях? Пользовательская схема URL – параметры для настраиваемого типа сообщений

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