WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Помогите с кодом шаблона вывода таксономии

Вопрос банален, но работая над проектом, по которому возник вопрос, почти без знаний php, я подзаколебался.
Мне нужно вывести таксономию, таксономия называется 'region'. Кастомный же тип поста для этой таксономии называется 'women'. Код шаблона для вывода таксономии (taxonomy-region.php) на данный момент недоделан (нет проверки на таксономию, выводит просто всё подряд из 'women') и выглядит так (вырезал лишнее, всякие div'ы и тп):

<?php
/**
 * Template Name: Region
 *
 */
 $post_type = 'women';

get_header(); ?>

	<div id="content-wrap" class="container clr">

			<?php while ( have_posts() ) : the_post(); ?>

			<?php endwhile; ?>

			<div class="row">

				<?php
					global $post, $paged, $more;
					$more = 0;
					if ( get_query_var( 'paged' ) ) {
						$paged = get_query_var( 'paged' );
					} else if ( get_query_var( 'page' ) ) {
						$paged = get_query_var( 'page' );
					} else {
						$paged = 1;
					}
					// Query posts
					$wp_query = new WP_Query( array(
						'post_type'        => 'women',
						'paged'            => $paged,
						'category__not_in' => wpex_blog_exclude_categories( true ),
						'orderby' => 'rand',
					) );
					if ( $wp_query->posts ) : ?>

				<div id="blog-entries" class="clr <?php wpex_blog_wrap_classes(); ?>">

					<?php $wpex_count = 0; ?>
					<?php while ( have_posts() ) : the_post(); ?>
					<div class="wpb_column vc_column_container vc_col-sm-3">
						.....
						.....
						.....
					</div>

					<?php endwhile; ?>
			</div></div><!-- #blog-entries -->

					<?php
					// Display post pagination
					wpex_blog_pagination( array(
						'query'    => $wp_query->query,
						'grid'     => '#blog-entries',
						'count'    => $wpex_count,
						'perPage'  => $wp_query->query_vars['posts_per_page'],
						'maxPages' => $wp_query->max_num_pages,
						'query'    => $wp_query->query,
						'paged'    => $paged,
						'columns'  => $columns,
					) ); ?>

				<?php endif; ?>

				<?php wp_reset_postdata(); wp_reset_query(); ?>

				<?php wpex_hook_content_bottom(); ?>

			</div><!-- #content -->

			<?php wpex_hook_content_after(); ?>

<?php get_footer(); ?>

Что добавить/убрать?.. Огромное спасибо за помощь заранее.

Заметки к вопросу:
Sasha Lifestar 6 лет назад

А в чём у тебя проблема то?)

Ну, для начала у тебя много неиспользуемых переменных: $post_type, $post, $more и тд.

Эту строчку вообще смело можно удалить

global $post, $paged, $more;

Непонятно для чего счётчик $wpex_count, но наверняка его можно заменить на встроенный $wp_query->current_post

anseme 6 лет назад

Проблема в вывести таксономию, таксономия называется 'region'. Кастомный же тип поста для этой таксономии называется 'women'

Код что он привел НЕ работает, парень думает что кто то (может ты?) вот так посмотрит на кусок его кода и решит его проблему, что не понятно тебе? Зачем столько вопросов не по теме? )

0
Gnumster
6 лет назад
  • 0

    Иными словами, тебе нужно переписать, или разобраться почему не работает этот кусок кода, который и формирует цикл постов.

    // Query posts
    					$wp_query = new WP_Query( array(
    						'post_type'        => 'women',
    						'paged'            => $paged,
    						'category__not_in' => wpex_blog_exclude_categories( true ),
    						'orderby' => 'rand',
    					) );

    Начни с того что бы заменить это "category__not_in" на 'category__in' => и тут укажи нужную тебе категорию

    // К примеру: 25 это ID твоей категории
    'category__in'    => array(25), 

    Без знаний пхп, будет туго... Но если время есть, а денег нет что бы нанять исполнителя, то изучай сам.

    Gnumster 6 лет назад

    Спасибо откликнувшимся, с кодом уже помогли (бесплатно smile )
    Вот такой получился код (здесь не конечная версия, ещё дорабатывал его под себя, но с основой всё)

    $term      = get_queried_object();
    $term_slug = $term->slug;
    $_posts    = new WP_Query( array(
    	'post_type'      => 'women',
    	'posts_per_page' => 10,
    	'tax_query'      => array(
    		array(
    			'taxonomy' => 'region',
    			'field'    => 'slug',
    			'terms'    => $term_slug,
    		),
    	),
    ) );
    if ( $_posts->have_posts() ) :
    	while ( $_posts->have_posts() ) :
    		$_posts->the_post();
    		get_template_part( 'template-parts/content', 'women' );
    	endwhile;
    	the_posts_navigation();
    else :
    	get_template_part( 'template-parts/content', 'none' );
    endif;
    wp_reset_postdata();
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация