WordPress как на ладони
rgbcode is looking for WordPress developers. eurobyte.ru - мощные сервера с Дата-центрами в Нидерландах и Москве. От 159 ₽/мес.

Как выводить посты в разных стилях?

Всем привет) Делаю блог и столкнулся с самим выводом постов) вывожу их через такой цикл

<?php
if(have_posts() ){
	while(have_posts()){ the_post();?>
	 <a href="<?php the_permalink(); ?>" class="article ">
		<img src="<?php echo get_the_post_thumbnail_url();?>" alt="photo" class="img_article ">
		<div class="discription ">
		  <div class="wrapper_disc ">
			<p class="category"><?php
			  foreach((get_the_category()) as $category) {
			   echo $category->cat_name . ' ';
			  } ?></p>
			<h2 class="title"><?php the_title();?></h2>
			<p class="text"><?php the_content();?></p>
		  </div>
		</div>
	</a>

<?php    }//end while
}//end if
?>

И, как я понял, выводить будет все посты в одном стиле(класс имеют article):

Но я ещё хочу чтоб оно выводило и в такой стилизации(класс имеют article-short):

Как это организовать? Один из примеров такого вывода вы можете увидеть на lifehacker.ru
Не понимаю вообще ничего)

0
rudy312
3.3 года назад
  • -1

    Собирайте посты цикла в две разные переменные и потом выводите их значение на экран.

    Комментировать
  • 1

    Я бы создал группу полей для данного типа поста и при создании поста выбирал, какой класс мне нужен, а в самом шаблоне вывод выглядел бы так:

    <a href="<?php the_permalink(); ?>" class="<?php the_field( 'class_field' ); ?>">

    rudy312 3.3 года назад

    Спасибо всем за ответы. Решил данную проблему, изменив цикл:

     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    				   <?php if ( in_category('Long') ): ?>
    						 <a href="<?php the_permalink(); ?>" class="article_long">
    						 <img src="<?php echo get_the_post_thumbnail_url();?>" alt="<? the_title();?>" class="img_article_long">
    					<div class="wrapper_long">
    						 <p class="category_long"><?php $category = get_the_category();
    							 echo $category[1]->name;?></p>
    						 <h2 class="title_long"><? the_title();?></h2>
    					</div>
    						  </a>
    				   <?php  elseif(in_category('Short') ):  ?>
    						 <a href="<?php the_permalink(); ?>" class="article_short">
    						 <img src="<?php echo get_the_post_thumbnail_url();?>" alt="<? the_title();?>" class="img_article_short">
    						   <div class="wrapper_short">
    							 <p class="category_long"><?php $category = get_the_category();
    							 echo $category[1]->name;?></p>
    							 <h2 class="title_short"><? the_title();?></h2>
    						   </div>
    						 </a>
    				   <?php  else : ?>
    						 <a href="<?php the_permalink(); ?>" class="article">
    						 <img src="<?php echo get_the_post_thumbnail_url();?>" alt="<? the_title();?>" class="img_article ">
    						  <div class="discription">
    						  <div class="wrapper_disc">
    							<p class="category"><?php $category = get_the_category();
    							 echo $category[1]->name;?></p>
    							<h2 class="title"><?php the_title();?></h2>
    							<p class="text"><?php the_excerpt();?></p>
    						  </div>
    						  </div>
    						</a>
    				   <?php endif; ?>
    

    То есть, я просто буду присваивать категорию, к примеру, short и в такой стилистике он и будет его выводить) Конечно, категория short не будет выводиться в поле категории поста. по-этому там присутсвует такой код, который выводит вторую по счёту категорию(к примеру, спорт и фитнес) код ниже

    <?php $category = get_the_category();
    							 echo $category[1]->name;?>

    Это я объяснил тем, кто тоже может задавался данным вопросов про вывод постов в разных стилях

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация