Ответы в темах

Просмотр 4 ответов — с 16 по 19 (всего 19)
  • Пока остается только гадать где и как Вы планируете использовать эту страницу.

    Цикл записей обычно же делается в 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.

Просмотр 4 ответов — с 16 по 19 (всего 19)