Похожее обсуждалось в теме На лету внедрить часть каталога одного сайта на фронтенд другого. Резюмируя изложенное в той теме, нужно сделать следующее:
-
в желаемое место страницы WordPress сайта добавить вызов информера с сайта магазина, предположим хотим дать этому информеру номер 123
<script src="http://сайт.магазина.ru/informer?num=123" language="JavaScript"></script>
-
в шаблон магазина, а именно в папку http://сайт.магазина.ru/design/папка_шаблона/html, добавить файл informer123.tpl, где отрисовать категории с помощью AddyOsmani Zoomer catalog
{* информер 123 *}{strip}
{* захватываем следующий вывод в переменную $result *}
{capture assign = 'result'}
{* рисуем категории *}
{include file = '../../common_parts/Addyosmani-Zoomer-catalog/main.tpl'
title = 'Разделы магазина'
items = $categories|default:false
width = 135
height = 135
margin = 10
frames = true
names = true
prices = true
highlights = true
hits = true
news = true
actions = true
awaits = true
my_icons = false
nesting = false
nesting_heads = false
link_css = true
link_engine = true}
{/capture}
{* если захваченный вывод не пуст *}
{if $result|regex_replace:'/[\s\t\r\n]/':'' != ''}
{* помним, что информер вызывают как яваскрипт *}
document.write('{$result|replace:"'":"\'"}');
{/if}
{/strip}
В итоге на стороннем сайте демонстрируются категории магазина. Поиграйте параметрами модуля при его вызове, чтобы добиться требуемого вида категорий на принимающем сайте.
Следует учесть такой момент. Технология внешних информеров подразумевает управляемость тем, что менеджер магазина разрешает транслировать на сторонних сайтах. Поэтому у категорий в админпанели существует флажок
Не экспорт. Устанавливая его для нужных категорий, менеджер тем самым запрещает экспортировать сведения об этих категориях вне сайта магазина.
Однако модуль AddyOsmani Zoomer catalog создан для внутреннего использования, то есть на сайте магазина, и следовательно не обращает внимание на разрешения/запреты трансляции категорий. Иными словами, приказывая модулю отрисовать содержимое массива
$categories, мы должны понимать, что он отрисует категории невзирая на состояния флажков
Не экспорт этих категорий.
Если же принципиально стоит вопрос соблюсти технологию, используя только немодифицированный AddyOsmani Zoomer catalog, тогда правильно было бы перед вызовом модуля отсеять из массива категорий все запрещенные к экспорту, и передать модулю уже этот новообразованный массив. Например назовем его
$cats.
{* создаем пустой массив *}
{$cats = []}
{* фильтруем в массив категории с неустановленным флагом НЕ ЭКСПОРТ *}
{foreach $categories as $r}
{if !$r->export_disabled|default:false}
{$cats[] = $r}
{/if}
{/foreach}
Данный пример фильтрует только категории верхнего уровня, не проверяя вложенные. Это достаточно при настройке nesting = false (не показывать вложенные) модуля AddyOsmani Zoomer catalog.