Intereting Posts
Пользовательская общая таксономия Woocommerce Получить общее количество авторов на сайте Получать meta_query значение пользователем meta array Получите термин id, относящийся к пользовательской таксономии, на пользовательской странице шаблона one-post-type.php Показывать время Youtube Automate from Key Связать несколько идентификаторов базы данных Пользовательский диалог TinyMCE с неработающим selectbox Динамический настраиваемый тип почтового типа Как показать пользовательский тип сообщения с помощью одного meta_value или нескольких meta_value (s) с использованием WP_Query? is_singular () не работает, если вызван через функцию обратного вызова admin-ajax.php Форма тяжести для представления сторонней заявке Добавление социальных значков в тему через пользовательское меню администратора Создать страницу «Все сообщения» или «Архивы» в WordPress 3.0? Как скрыть tinymce в окне редактирования определенной страницы Поля динамических настроек с помощью API настроек

Добавить родительский идентификатор в body_class

Каков наилучший способ добавить родительский идентификатор страницы в <body <?php body_class(); ?>> <body <?php body_class(); ?>> функция?

В настоящее время я использую функцию ниже, чтобы получить идентификатор родителя для пункта меню для другого использования; любая идея, как получить это в классе тела?

 function get_menu_parent_ID( $menu_name ) { if ( ! isset( $menu_name ) ) { return "No menu name provided in arguments"; } $menu_slug = $menu_name; $locations = get_nav_menu_locations(); $menu_id = $locations[$menu_slug]; $post_id = get_the_ID(); $menu_items = wp_get_nav_menu_items( $menu_id ); $parent_item_id = wp_filter_object_list( $menu_items, array( 'object_id' => $post_id ), 'and', 'menu_item_parent' ); $parent_item_id = array_shift( $parent_item_id ); function checkForParent( $parent_item_id, $menu_items ) { $parent_post_id = wp_filter_object_list( $menu_items, array( 'ID' => $parent_item_id ), 'and', 'object_id' ); $parent_item_id = wp_filter_object_list( $menu_items, array( 'ID' => $parent_item_id ), 'and', 'menu_item_parent' ); $parent_item_id = array_shift( $parent_item_id ); if ( $parent_item_id == "0" ) { $parent_post_id = array_shift( $parent_post_id ); return $parent_post_id; } else { return checkForParent( $parent_item_id, $menu_items ); } } if ( ! empty( $parent_item_id ) ) { return checkForParent( $parent_item_id, $menu_items ); } else { return $post_id; } } 

Затем напечатайте его в шаблоне следующим образом:

 $parentID = get_menu_parent_ID( 'primary' ); 

Использование фильтра body_class

 // Use the filter 'body_class' add_filter( 'body_class', 'parent_id_body_class' ); function parent_id_body_class( $classes ) { // add parent id number to the $classes array $classes[] = wp_get_post_parent_id( $post_ID ); // return the $classes array return $classes; } 

Во всяком случае, я рекомендую вам добавить текст к номеру id, чтобы сделать его более полным, следующим образом:

 // Use the filter 'body_class' add_filter( 'body_class', 'parent_id_body_class' ); function parent_id_body_class( $classes ) { // add comprehensive text followed by parent id number to the $classes array $classes[] = 'parent-id-' . wp_get_post_parent_id( $post_ID ); // return the $classes array return $classes; } 

Я надеюсь, что это помогает.