Иногда есть необходимость создание каталога из блога WordPress. Да, у  WordPress есть неплохие модули каталоги,но с ними нужно заново вносить записи или же переписывать их в другую таблицу Mysql. Поэтому я делаю каталог без них.

Для того, что наш блог стал похожим на каталог, нам понадобится:

  1. необходимо у каждой рубрики сделать вывод описания,
  2. добавить картинку или превью для подрубрик, чтобы наши рубрики были похожи на категории магазина-каталога.
  3. при входе в рубрику отобразить подрубрики,
  4. Добавлить цены при необходимости.
  5. Добавить кнопки оформление заказа.

Для начала установим необходимые плагины WordPress. Для добавления изображений к рубрикам мне было удобно использовать модуль Taxonomy Images. Для добавления редактора рубрикам можно использовать модуль Rich Text Tags, Categories, and Taxonomies.  С установкой этих двух модулей можно считать первые два пункта практически выполненными.

Поправим шаблон отвечающий за вывод страницы с рубрикой, например archive.php. В моем случае получилось так:

 <?php  /* вывод описания категории, если есть
      $category_description = category_description();
 if ( ! empty( $category_description ) )
 echo '<div class="archive-meta">' . $category_description . '</div>';     
/* вывод списка рубрик */
//получаем номер родительской категории
$numcat = get_query_var('cat');
$args = array(
'parent'                   => $numcat,
'hide_empty'               => 0,
'exclude'                  => '',
'number'                   => '0',
'taxonomy'                 => 'category',
'pad_counts'               => true );
 

if ( get_category_children($numcat) > '' ) {
$catlist = get_categories($args);
foreach ($catlist as $categories_item) { 
echo "<div class=\"col-md-6 odd " .($xyz++%2) . "\"><h1 class=\"entry-title\"><a href=\"" . $categories_item->slug . "\">" . $categories_item->cat_name . "</a></h1>";
    $terms = apply_filters('taxonomy-images-get-terms', '', array(
'taxonomy' => 'category' // таксономия, для которой нужны изображения
));
if (!empty($terms))
{
foreach((array)$terms as $term)
{
if ($term->term_id == $categories_item->term_id)
{
// выводим изображение рубрики

    print '<div class="entry-content"> <span class="thumbnail-post"><a href="' . esc_url(get_term_link($term, $term->taxonomy)) . '" title="Нажмите, чтобы перейти в рубрику">' . wp_get_attachment_image($term->image_id, 'Fullsize');
echo '<div class="mask"> 
     <div class="icon"></div> 
     </div> </a></span></div>';
}
}
}
echo "</div>";
}
}?>
//если в категории нет подрубрик, то выводим записи нужной подрубрики
  <?php if ( get_category_children($numcat) == '' ) { ?>
 /// ...далее код,который был в шаблоне изначально и который начинается  while ( have_posts() ) : the_post(); .. ///

// ... 

// После <?php endwhile; ?> 
<?php } ?>

Теперь мы можем сделать цену товара или например надпись «Акция». Для этого можно воспользоваться произвольными полями.

Для этого в ту же страницу шаблона рубрик достаточно добавить в нужном месте после предыдущего фрагмента

<p style="text-align:center;"><?php echo get_post_meta($post->ID, 'key', true); ?></p>

где key — название произвольного поля. В админке к нужной записи-товару добавляем произвольное поле key и нужное значение или цену

Теперь можно  с помощью плагина Contact Form 7 добавить кнопку «заказать» для наших товаров.

И мы получаем простой каталог на WordPress