Универсальный каталог
Как известно, в вордпресе нет каталога из коробки. Так же нету хорошего такого плагина чтобы сразу было все как требуется.
Но одним решением этой проблемы мне пришлось заняться. Вариант гибкий, хотя и навороченный.
Итак, основные задачи или что мне нужно от каталога.
Каталог состоит из страниц и дочерних страниц любой вложенности.
Для удобства управления оными я установил два плагина: CMS Tree Page View и Quick Add Child.
Подстраницы отображаются картинками.
Для этого ставим плагин Page-list.
Шорткод можно вставить и в страницу я же прописал в шаблон страницы вот так:
1 |
<? echo do_shortcode('[pagelist_ext parent="this" show_content = "0" depth="1" show_first_image="1" image_width="350" sort_order="ASC"]'); ?> |
А в файл стилей из папки самого плагина вот полное его содержание:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
/* Page-list plugin http://wordpress.org/plugins/page-list/ */ /* default styles for [pagelist], [subpages], [siblings] */ .page-list .current_page_item > a { font-weight: bold; /* hilite active item */ } /* default styles for [pagelist_ext] */ .page-list-ext { clear: both; } /* clearfix-hack */ .page-list-ext { *zoom: 1; } .page-list-ext:before, .page-list-ext:after { display: table; line-height: 0; content: ""; } .page-list-ext:after { clear: both; } .page-list-ext .page-list-ext-item { width: 300px; height: 340px; display: inline-block; vertical-align: top; background: #fff; position: relative; padding: 10px; margin: 20px 12px 20px 0; border: 1px solid #E2E7E9; box-shadow: 0 0 3px 1px #E2E7E9;} .page-list-ext .page-list-ext-image { float: left; display: inline; margin: 5px 15px 15px 0; } .page-list-ext .page-list-ext-title { clear: none; } .page-list-ext-image {height: 300px; width: 300px; overflow: hidden;} |
Теперь картинки будут плиткой.
Для навигации нужны хлебные крошки.
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $ancs=get_post_ancestors($post); // array of IDs $parentID=$ancs[0]; if ($parentID){ $ancs=array_reverse($ancs); foreach($ancs as $anc) { $anc_title = get_the_title($anc); echo '<a href="' . get_permalink($anc). '" title="' . $anc_title . '">' . $anc_title . '</a> » '; } } ?> |
Ссылки пред товар след товар.
1 2 |
<div ><?php previous_post_link('« %link ранее') ?> | <?php next_post_link('далее %link »') ?></div> |
Расширенная таксономия по сложным меткам.
В файл функций дописываем:
1 2 3 4 5 6 7 |
add_action( 'init', 'create_my_taxonomies', 0 ); function create_my_taxonomies() { register_taxonomy( 'tip', 'page', array( 'hierarchical' => false, 'label' => 'Тип', 'query_var' => true, 'rewrite' => true ) ); register_taxonomy( 'color', 'page', array( 'hierarchical' => false, 'label' => 'Цвет', 'query_var' => true, 'rewrite' => true ) ); register_taxonomy( 'size', 'page', array( 'hierarchical' => false, 'label' => 'Размер', 'query_var' => true, 'rewrite' => true ) ); register_taxonomy( 'country', 'page', array( 'hierarchical' => false, 'label' => 'Страна', 'query_var' => true, 'rewrite' => true ) ); } |
Для вывода всей этой красоты в шаблон в цикле вставляем:
1 2 3 4 |
<?php the_terms( $id, 'color', '<br>Цвет: '); ?> <?php the_terms( $id, 'size', '<br><br>Размер: '); ?> <?php the_terms( $id, 'tip', '<br><br>Тип: '); ?> <?php the_terms( $id, 'country', '<br><br>Страна: '); ?> |
Таксономия работает так, что товары появятся на странице arhive.php.
В начале шаблона надо вставить подобрав к шаблону:
1 2 3 4 5 6 7 8 9 10 |
<?php if ( is_tag() ) : printf( __( 'Daily Archives: %s', 'rubbersoul' ), '<span>' . get_the_date() . '</span>' ); elseif ( is_month() ) : printf( __( 'Monthly Archives: %s', 'rubbersoul' ), '<span>' . get_the_date( _x( 'F Y', 'monthly archives date format', 'rubbersoul' ) ) . '</span>' ); elseif ( is_year() ) : printf( __( 'Yearly Archives: %s', 'rubbersoul' ), '<span>' . get_the_date( _x( 'Y', 'yearly archives date format', 'rubbersoul' ) ) . '</span>' ); else : _e( 'Свойства: ', 'rubbersoul' );single_tag_title(); endif; ?> |
А в сайдбаре таксономия выводится например плагином List Custom Taxonomy Widget. Или еще каким-нибудь.
Связанные посты:
- Простой шаблон страницы
- Каталог продукции версия 2
- Вывод списков постов или страниц шорткодами в любом месте
- CMS Tree Page View — удобный плагин для работы со страницами в админке
- Быстрое добавление дочерних страниц
- Как создать свой шаблон страницы для сайта на WordPress
- Как добавить рубрики и метки к страницам
- Page-list — продвинутый список страниц в WordPress с миниатюрами
- Вывод дочерних страниц
- Шорткоды