Goods Catalog: Продвинутые возможности

Ниже приведено несколько функций, которые, при размещении в файлах используемой темы или плагина Goods Catalog, позволят расширить стандартные возможности каталога.

Вывод каталога на главной странице

При размещении в файле темы, отвечающем за формирование главной страницы, код выведет рубрики каталога с миниатюрами.

Файл темы: home.php (лучше), или index.php
Пример: http://test.cmski.ru
Автор решения: Максим Дорохов

<!-- Catalog -->
<?php

$term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy'));

// include
echo '<h3 class="catalog-home">Каталог</h3>';
echo '<div id="catalog-home">';
echo '<div class="catalog-inner">';

// categiries list with images
$category_id = get_query_var('cat');
$args = array(
                'type' => 'goods',
                'taxonomy' => 'goods_category',
                'hide_empty' => 0,
                'parent' => 0,
                'orderby' => 'name'
            );
$category_list = get_categories($args, $category_id);

// check if current taxonomy doesn't have childs
if (empty($category_list)) {
//     echo "There are no subcategories";
}
// if has
else {

    echo '<div class="goods-categories-container">';
    foreach ($category_list as $categories_item) {

        // show categories images
        if (isset($catalog_option['show_category_thumb'])) {
            echo '<div class="grid"><div class="goods-category-thumb-container">';
            $terms = apply_filters('taxonomy-images-get-terms', '', array('taxonomy' => 'goods_category'));
            $flag = FALSE;
            if (!empty($terms)) {
                foreach ((array) $terms as $term) {
                    if ($term->term_id == $categories_item->term_id) {

                        $img = wp_get_attachment_image($term->image_id, 'gc-image-thumb', '', array('class' => 'goods-category-thumb'));
                        echo '<a href="' . esc_url(get_term_link($term, $term->taxonomy)) . '">' . $img . '</a>';
                        $flag = TRUE;
                    }
                }
                if ($flag == FALSE) {
                    echo '<a href="' . esc_url(get_term_link($categories_item, $categories_item->taxonomy)) . '"><img class="goods-item-thumb" src="/wp-content/themes/albar/images/gc.png" alt=""></a>';
                }
            }
            // show images if plugin Taxonomy Images not installed
            else {
                echo '<a href="' . esc_url(get_term_link($categories_item, $categories_item->taxonomy)) . '"><img class="goods-item-thumb" src="/wp-content/themes/albar/images/gc.png" alt=""></a>';
            }
            echo '</div>';
        }

        // show categories titles
        echo '<h2 class="goods-category-list-title"><a href="' . esc_url(get_term_link($categories_item, $categories_item->taxonomy)) . '" title="' . sprintf(__("Go to cetegory %s", 'gcat'), $categories_item->name) . '" ' . '>' . $categories_item->name . '</a></h2> ';

        echo '</div>';
    }

    echo "</div>";
    echo "<div class=\"clear\"></div>";
}
//
echo '</div>'; // catalog-inner
echo '</div>'; // goods-catalog

echo '<div class="clear"></div>'; // fix for some themes
?>

<!-- end catalog -->

Вывод похожих товаров на странице товара

Вывод на странице одиночного товара списка похожих товаров. Необходимо внести изменения в файл плагина.

Изменения в файлах плагина них пропадут при обновлении. Будьте внимательны и делайте бэкапы!

Файл плагина: /templates/single-goods.php

Автор кода: Isabel Castillo

<!-- begin custom related loop, isa -->

<?php 

// get the custom post type's taxonomy terms

$custom_taxterms = wp_get_object_terms( $post->ID, 'goods_category', array('fields' => 'ids') );
// arguments
$args = array(
'post_type' => 'goods',
'post_status' => 'publish',
'posts_per_page' => 3, // you may edit this number
'orderby' => 'rand',
'tax_query' => array(
    array(
        'taxonomy' => 'goods_category',
        'field' => 'id',
        'terms' => $custom_taxterms
    )
),
'post__not_in' => array ($post->ID),
);
$related_items = new WP_Query( $args );
// loop over query
if ($related_items->have_posts()) :
echo '<ul>';
while ( $related_items->have_posts() ) : $related_items->the_post();
?>
    <li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
echo '</ul>';
endif;
// Reset Post Data
wp_reset_postdata();
?>

<!-- end custom related loop, isa -->