Eugene
Ответы в темах
-
Форум: Проблемы и решения
Тема: Вывод пагинации на сайтеПока остается только гадать где и как Вы планируете использовать эту страницу.
Цикл записей обычно же делается в index.php, archive.php и т.п. Там не нужно никаких WP_Query или query_posts. А просто
<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> // Вывод поста <?php endwhile; ?> <?php else : ?> // Вывод сообщения, что записей нет <?php endif; ?>
И стандартная пагинация будет работать, если добавить.
Если в качестве главной установлена какая-то другая страница, то этот стандартный код все равно пишете в index.php; создаете пустую страницу на стандартном шаблоне; в настройках ставите, что для вывода записей использовать произвольную страницу и указываете вот эту только созданную. В результате на sitename.ru/pagename (ну или смотря как назовете ее) будет выводиться список записей, и тоже будет работать пагинация.
А зачем товарам префикс catalog? делайте product
Бренды почему бы не открывать просто по brand/brand-slug/
Для категорий сделать префикс catalogСЕОшники просят, чтобы логически всё было как бы дочерним к странице /catalog/:
/catalog/product-name/ — страница конкретного товара
/catalog/brand/ — все товары определенного бренда
/catalog/type/ — все товары определенного типа (из одной группы)
/catalog/brand/type/ — все товары бренда определенного типа (группы)
и т.д.Страниц таксономий вида taxonomy/term-slug/ (ну которые шаблонами taxonomy-*.php формируются) там сейчас нет.
Весь каталог выводится шаблоном archive-product.php. Просто, в зависимости от установок фильтра, он вызывается с разными get-параметрами, ну и в pre_get_posts модифицируется основной запрос.Вся эта конструкция благополучно работает давным-давно. Но вот вместо get-параметров нужно сделать ЧПУ…
Форум: Проблемы и решения
Тема: Вывод пагинации на сайтеА она и не должна здесь отображаться.
get_the_posts_pagination выводит пагинацию (или она есть) в стандартном цикле.У Вас же используется произвольная выборка записей через WP_Query и плюс выбираются сразу все записи (posts_per_page=-1).
Тут не то что стандартной, а вообще никакой пагинации быть не может — уже выбраны все записи, страницы №2 и т.д. в принципе не существует.У Вас в запросе нет ничего необычного. Ничто не мешает использовать стандартный цикл. WP_Query в данном случае лишний.
А так, вообще, поведение цикла на страницах архивов лучше всего изменять через pre_get_posts.Список всех категорий можно получить через get_terms.
Параметр exclude указывает те категории, которые нужно исключить.
ID текущей категории (которую и нужно исключить) можно получить через get_queried_object().
Будет как-то так:$current = get_queried_object(); $args = array( 'taxonomy'=> 'имя_таксономии', 'exclude' => $current->term_id, ); $cats = get_terms( $args );
В итоге в $cats будет требуемый список. Осталось его в цикле вывести. Упрощенно это будет так:
<ul> <?php foreach ( $cats as $entry ) : ?> <li><a href="<?php echo get_term_link( $entry ); ?>"><?php echo $entry->name; ?></a></li> <?php endforeach; ?> </ul>
Ну а вывод записей из категории (сами видеоролики) — это ж стандартный цикл Вордпресса.
Если ссылка на YouTube хранится в доп.полях записи, то просто подставляете ее каждый раз в <iframe src=»…»></iframe>.P.S. У Вас с html-разметкой не очень. Использовать каждый раз section вместо div так себе идея. section — это может быть, например, весь блок с кнопками/ссылками «Инфографика», «Инфо», «Монтаж». Но внутри него лучше сделать список как у меня, или, в крайнем случае, каждая ссылка в div, а не section.