Intereting Posts
Дополнительный заголовок с этой функцией wp_list_pages Замена редактора WordPress.com WordPress permalinks Хостинг Yahoo (нет .htaccess разрешено) каковы различия между wp_users и таблицами wp_usermeta? «О нас», «контактные» разделы должны быть опубликованы в статье (публикации) или странице на простом маленьком бизнес-сайте? Конфликт с get_posts и the_content В редакторе style.css, как я могу изменить цвет фона поля заголовка? Связка несвязанного WordPress с использованием того же memcached не хранит правильно свои данные Добавить пользовательский столбец в список пользовательских сообщений Получить миниатюру сообщения в виде массива Что такое браузеры с поддержкой WordPress? Почему в wp_get_attachment_image_attributes отсутствует правообладание? Использование встроенных разделов Theme Customizer Видеокод – автовоспроизведение всех видеороликов зарегистрировать дочерний класс в другом плагине

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

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

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