• Хочу реализовать вывод похожих постов без плагина с сохранением своего оформления страницы.
    Последние посты вывожу в single-page.php посредством <?php get_template_part('includes/page-related'); ?> которое основано полностью на includes/page, но с ограничением по количеству.

    Для понимания page.php:

    <?php
    	$desired_width = 600;
    	$desired_height = 0;
    	if(is_tax()) {
    		$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
    		$args = array( 'post_type' => 'projects', 'catprojects' => $term -> slug, 'posts_per_page' => -1, 'orderby' => 'menu_order' );
    	}
    	else {
    		$args = array( 'post_type' => 'projects', 'posts_per_page' => -1, 'orderby' => 'menu_order' );
    	}
       	$loop = new WP_Query( $args );
    	if($loop->have_posts()) {
    ?>
    	<div class="container">
    // ТУТ ОФОРМЛЕНИЕ ВЫВОДА КОНТЕНТА
    	</div>
    <?php } ?>

    Для page-related.php установлю 'posts_per_page' => 8, 'orderby' => 'rand', перерыл codex, но никак не пойму как доработать код чтобы была привязка к категории отображаемой страницы.

    Помогите а…

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Безумно сложно понимать задумку, когда «ломают» логику работы WordPress. Вы смешали всё в одну кастрюлю, посты, страницы, произвольный тип и таксономии.
    Вот page.php — это шаблон страницы (post_type = 'page'), следовательно page-related.php это страница со слагом related. У страниц нет категорий.
    Если вы создали произвольный тип постов и привязали его к категориям, то для них существуют свои шаблоны. Можете посмотреть на крутую картинку http://wphierarchy.com/
    Запоминайте (пример для вашего projects):
    Шаблон для вывода одиночной записи произвольного типа single-projects.php
    Шаблон для вывода архивов записей произвольно типа archive-projects.php

    Полезный ресурс:
    http://codex.wordpress.org/Template_Hierarchy

    Понимаю что сложно, сам мучаюсь, но что делать если шаблон уже купил человек, а сам его настроить вообще не может?
    Вот и парюсь.

    Решение для поставленной мною задачи:
    codex wordpress

    foreach (get_the_terms( $post->ID, 'catprojects' ) as $term) {
        $terms[] = $term->slug;
    }
    $args = array(
        'post_type' => 'projects',
        'tax_query' => array(
            array(
                'taxonomy' => 'catprojects',
                'field'    => 'slug',
                'terms'    => $terms,
            ),
        ),
    );
    $loop = new WP_Query( $args );

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Вывод похожих постов» закрыта для новых ответов.