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

Я хотел бы отобразить «путь к файлу» в обычной позиции на странице моего сайта 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(); } 

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