Раскрытие и свертывание меню на WordPress
Добрый день.
Реализовал на сайте вывод рубрик с миниатюрами (миниатюры задавал плагином Taxonomy Images). Собираюсь использовать их в качестве главного меню со списком основных категорий. На практике это выглядит так:
Реализовывал с помощью следующего кода:
<?php $args = array(
'parent' => 0,
'hide_empty' => 0,
'exclude' => '14,5,2,12,8,11,7,13', // ID рубрики, которую нужно исключить
'number' => '0',
'taxonomy' => 'category', // таксономия, для которой нужны изображения
'pad_counts' => true
);
$categories = get_categories($args); // получаем все категории в виде массива
$images_raw = get_option( 'taxonomy_image_plugin' ); // получаем все изображения в виде массива
$term_taxonomy_string = '';
foreach ($categories as $category) { // перебираем массив полученных категорий
$term_taxonomy_id = $category->term_taxonomy_id; // узнаем ID категории
$term_taxonomy_name = $category->name; // узнаем имя категории
$term_taxonomy_image = wp_get_attachment_image( $images_raw[ $term_taxonomy_id ], 'full' ); // получаем прикрепленное изображение
$term_taxonomy_link = get_term_link((int)$term_taxonomy_id, 'category' ); // получаем ссылку на соответствующую рубрику
$term_taxonomy_string .= '<div class="subcategory-category-card">
<div class="thumbnail"><a rel="nofollow" href="'.$term_taxonomy_link.'">'.$term_taxonomy_image.'</a></div>
<span class="category-title"><a href="'.$term_taxonomy_link.'">'.$term_taxonomy_name.'</a></span>
</div>'; // формируем полученные данные и записываем в строку
}
echo $term_taxonomy_string; // выводим сформированную ранее строку - рубрики с изображениями
?>
На главной странице сайта такое меню будет выглядеть вполне достойно, как рубрикатор. А вот на всех остальных довольно громоздко, так как 3 ряда это многовато.
Вот в чем вопрос. Надеюсь, что подскажете.
Нужно сделать так, чтобы показывался лишь 1 ряд (заданное количество рубрик), а все остальное скрывалось и снизу ряда присутствовала ссылка (например, показать все разделы), при нажатии на которую происходит раскрытие полного меню.
Пытался добавить реализовать с помощью jquery. Вот пример функции, которую использовал:
jQuery('.primer').hide()
jQuery('.vce_razdely').click(function()
{
jQuery('.vce').slideDown(400);
jQuery(this).hide()
});
Yо проблема в том, что там получается скрыть только конкретный текст, разместив его внутри соответствующего блока в шаблоне.
Нужно же сделать, чтобы автоматически скрывалось все, что идет после n-й (например, после 4й) рубрикой в данной реализации меню. Т.е. функция должна сама все определять и скрывать.
Обращаюсь к вам, как к знающему человеку. Надеюсь, что хоть что-то подскажете. Если не с этой функцией, то может быть с другой.
Заранее спасибо за ответ.
С уважением, Константин.
Оберни все в div пусть будет
.wrap. Задай ему стили:overflow:hidden; height:200px;. Высоту подбери, там миниатюры наверняка конкретной высоты, значит можно подобрать.Далее добавь кнопку, пусть будет с классом
.vce_razdelyи используй примерно такой код:!fnction($){ var originHeight, $wrap = $('.wrap'); $('.vce_razdely').click(function(){ if( ! originHeight ) originHeight = $wrap.height(); if( $wrap.css('overflow') == 'hidden' ){ $wrap.css({ overflow:'visible', height:'auto' }); } else{ $wrap.css({ overflow:'hidden' }).height(originHeight); } }); }(jQuery)