@Qleager

Wordpress: Как вывести посты текущей категории через wp_query?

В выводятся посты с большим количеством комментариев через wp_query, всё остальное вне блока по дате публикации стандартным путем. Проблема в том, что стандартный способ вывода подхватывает текущую категорию нахождения, а wp_query нет, но в параметрах выборки постов можно установить в сat = "cat=id". Как его получить и вписать? Или есть возможность по другому реализовать популярные и последние посты в рубрике? Надеюсь доступно описал проблему

category.php
<?php get_header(); ?>
<main>
	<h1>Горячие <?php single_cat_title(''); ?></h1>
	<section class="news"> 
		<?php
			$args = array(
				'posts_per_page' => 6,
				'orderby' => 'comment_count',
				'cat' => 'cat=id ' 
				);
			$query = new WP_Query( $args );
			if ( $query->have_posts() ) {
				while ( $query->have_posts() ) { $query->the_post(); get_template_part( 'content', get_post_format() ); }} 
			else {}
			wp_reset_postdata(); ?>
	</section>
	
		<?php if ( have_posts() ) : ?>
			<?php /* The loop */ ?>
			<?php while ( have_posts() ) : the_post(); ?>
				<?php get_template_part( 'content', get_post_format() ); ?>
			<?php endwhile; ?>
		<?php endif; ?>

</main>
<?php get_footer(); ?>
  • Вопрос задан
  • 4242 просмотра
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Попробуйте так:
$args = array(
        'posts_per_page' => 6,
        'orderby' => 'comment_count',
        'cat' => get_query_var('cat')
        );
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kumaxim
@kumaxim
Web-программист
Как получить информацию о текущий странице
global $wp_query;
print_r( $wp_query );


Найти в выводе id категории и подставь туда тебе надо.\

И один совет - переименуй свою переменную $query в какую-нибудь $category_hot_query, дабы избежать потенциального переопределения. Оно и в твоем случае работать будет, просто из опыта могу сказать, что сейчас ты написал тут $query, через неделю твой клиент тебе пишет "А вот хорошо бы еще вот тут вывести..." и ты делаешь еще одну переменную $query, потом твой коллега где-то еще $query и т.д. В итоге ты тратить 10 минут лишнего времени на поиск и исправления тупой ошибки, которую можно очень легко избежать.
Все это чисто лирическое отступление, основанное на моем личном опыте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы