Intereting Posts
Все запланированные должности WordPress публикуются немедленно Пользовательская разбивка на страницы (предыдущий / следующий) Передача переменной через wp_head, а затем вызов ее на странице Распечатайте идентификатор пользователя WordPress – два сайта с одинаковым кодом, но с другим выходом Когда публикация публикуется, вставьте в пользовательскую таблицу номер – настраиваемый тип сообщения Как отображать код, если это не определенные страницы? Действительная информация о подключении отключается миграция магазина woocommerce на многосайтовый суб-сайт? Использование промежуточных медиафайлов на сайте разработки в WordPress Save_post для пользовательского типа сообщения? Gravity Forms отправит только электронную почту от администратора Функция возвращает запрошенное значение мета на основе текущего идентификатора сообщения Ошибка установки WordPress локально – Файл 'wp-config.php' уже существует Добавление настраиваемого поля в do_shortcode Как настроить порядок для настраиваемого типа сообщения

Как создать пакет для страниц?

Я хотел бы отобразить «путь к файлу» в обычной позиции на странице моего сайта WordPress. Что-то вроде этого:

пример

Кто-нибудь знает, возможно ли это, не набрав его вручную на каждой странице (это не реально)?

Solutions Collecting From Web of "Как создать пакет для страниц?"

Есть много плагинов, которые предлагают панировку, но вы также можете создавать свои собственные.

Чтобы создать простую панировку, вам понадобятся две функции. Один для создания цепочки категорий, а другой – для создания самой пачки.

Создание цепочки категорий

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

function wpse_get_category_parents( $id, $link = false, $separator = '/', $nicename = false, $visited = array(), $iscrumb=false ) { $chain = ''; $parent = get_term( $id, 'category' ); if ( is_wp_error( $parent ) ) { return $parent; } if ( $nicename ) { $name = $parent->slug; } else { $name = $parent->name; } if ( $parent->parent && ( $parent->parent != $parent->term_id ) && !in_array( $parent->parent, $visited ) ) { $visited[] = $parent->parent; $chain .= wpse_get_category_parents( $parent->parent, $link, $separator, $nicename, $visited , $iscrumb); } if (is_rtl()){ $sep_direction ='\\'; } else { $sep_direction ='/'; } if ($iscrumb){ $chain .= '<li><span class="sep">'.$sep_direction.'</span><a href="' . esc_url( get_category_link( $parent->term_id ) ) . '"><span>'.$name.'</span></a></li>' . $separator ; } elseif ( $link && !$iscrumb) { $chain .= '<a href="' . esc_url( get_category_link( $parent->term_id ) ) . '">'.$name.'</a>' . $separator ; } else { $chain .= $name.$separator; } return $chain; } 

Создайте Breadcrumb

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

 function wpse_get_breadcrumbs() { global $wp_query; if (is_rtl()){ $sep_direction ='\\'; } else { $sep_direction ='/'; }?> <ul><?php // Adding the Home Page ?> <li><a href="<?php echo esc_url( home_url() ); ?>"><span> <?php bloginfo('name'); ?></span></a></li><?php if ( ! is_front_page() ) { // Check for categories, archives, search page, single posts, pages, the 404 page, and attachments if ( is_category() ) { $cat_obj = $wp_query->get_queried_object(); $thisCat = get_category( $cat_obj->term_id ); $parentCat = get_category( $thisCat->parent ); if($thisCat->parent != 0) { $cat_parents = wpse_get_category_parents( $parentCat, true, '', false, array(), true ); } if ( $thisCat->parent != 0 && ! is_wp_error( $cat_parents ) ) { echo $cat_parents; } echo '<li><span class="sep">'.$sep_direction.'</span><a href="'.get_category_link($thisCat).'"><span>'.single_cat_title( '', false ).'</span></a></li>'; } elseif ( is_archive() && ! is_category() ) { ?> <li><span class="sep"><?php echo $sep_direction;?></span> <?php _e( 'Archives' ); ?></li><?php } elseif ( is_search() ) { ?> <li><span class="sep"><?php echo $sep_direction;?></span> <?php _e( 'Search Results' ); ?></li><?php } elseif ( is_404() ) { ?> <li><span class="sep"><?php echo $sep_direction;?></span> <?php _e( '404 Not Found' ); ?></li><?php } elseif ( is_singular() ) { $category = get_the_category(); $category_id = get_cat_ID( $category[0]->cat_name ); $cat_parents = wpse_get_category_parents( $category_id, true, '',false, array(), true ); if ( ! is_wp_error( $cat_parents ) ) { echo $cat_parents; }?> <li> <a href="<?php the_permalink();?>"><span class="sep"><?php echo $sep_direction;?></span><?php the_title();?></a> </li><?php } elseif ( is_singular( 'attachment' ) ) { ?> <li> <span class="sep"><?php echo $sep_direction;?></span> <?php the_title(); ?> </li><?php } elseif ( is_page() ) { $post = $wp_query->get_queried_object(); if ( $post->post_parent == 0 ) { ?> <li><?php _e( '<span class="sep">/</span>' ); the_title(); ?></li><?php } else { $title = the_title( '','', false ); $ancestors = array_reverse( get_post_ancestors( $post->ID ) ); array_push( $ancestors, $post->ID ); foreach ( $ancestors as $ancestor ) { if ( $ancestor != end( $ancestors ) ) { ?> <li> <span class="sep"><?php echo $sep_direction;?></span><a href="<?php echo esc_url( get_permalink( $ancestor ) ); ?>"> <span><?php echo strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ); ?></span></a> </li><?php } else { ?> <li> <span class="sep"><?php echo $sep_direction;?></span><?php echo strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ); ?> </li><?php } } } } } ?> </ul><?php } 

Выведите Breadcrumb

После включения обеих вышеперечисленных функций в файл functions.php вашей темы вы должны использовать приведенный ниже код в заголовке своей темы для вывода палитры:

 if( ! is_home() ) { wpse_get_breadcrumbs(); } 

Это скроет палочку на домашней странице, так как это действительно не требуется.