Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Вывод статей сеткой в Wordpress

#11 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143
0

Отправлено 30 Апрель 2012 - 21:31

c0ns0l3, не совсем все так просто. Возьмем пример. На первой странице необходимо вывести статьи в следующем виде: 1 статья (первая) идет списком (полный текст - the_content() ), а далее 4 статьи (допустим, такое количество указано в настройках или любое другое четное) идут табличным видом. Итого 5 статей на первой странице. На всех последующих необходимо выводить по 4 статьи табличным видом.
Мне кажется довольно затруднительно будет, не используя создание второго объекта, выводить 5 статей на первой странице и по 4 на последующих. Или мне кажется? :(
Ну а ссылка на кодекс здесь уже выше давалась.
  • 0


#12 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 01 Май 2012 - 10:01

Мне кажется довольно затруднительно будет, не используя создание второго объекта, выводить 5 статей на первой странице и по 4 на последующих. Или мне кажется? :(


Отвечу сам себе :)
Решил все же проверить возможность решения поставленной задачи без создания второго объекта. Оказалось, что можно, правда, как и предполагал, кода стало побольше... примерно на треть. Ну и, соответственно, читабельность кода стала посложнее из-за нескольких дополнительных условий. Ну и алгоритм реализации, если кому-то интересен:
1. Проверяем нет ли параметра paged (первая ли страница).
2. Если первая страница, то выбираем необходимое нечетное количество записей.
3. Запоминаем ID первого поста.
4. Начинаем вывод постов первой страницы проверкой. Если это первый пост объекта, то выводим его в нужном формате (списком), иначе - выводим в другом формате (табличный вид).
5. Иначе пункта 1, т.е. если не первая страница, то выбираем посты, исключая пост, полученный в п.3 (это необходимо, если на всех последующих страницах посты выводятся табличным видом, т.е. четное количество).
6. Выводим посты.
  • 0


#13 c0ns0l3

c0ns0l3
  • Пользователь
  • 264 сообщений
  • Репутация: 49

Отправлено 02 Май 2012 - 21:04

Вордпресс - это комбайн, меня 12 года назад попросили сверстать и написать тему на ВП, до этого сидел на Джумле...
После этого, я перешел полностью на ВП...

И ты пробовал сделать то, что я предлагал для всех Вас, на все случаи жизни? посмотреть составляющее объекта wp_query?
  • 0

#14 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 02 Май 2012 - 22:25

И ты пробовал сделать то, что я предлагал для всех Вас, на все случаи жизни? посмотреть составляющее объекта wp_query?

Эта реплика мне адресована? Если да, то удивлен ею, поскольку предыдущий алгоритм, собственно, как и использование мультицикла, без знаний основ работы с данным объектом попросту не реализовать.
Возможно стоит внимательнее перечитать посты темы?
  • 0


#15 WebMaster

WebMaster
  • Пользователь
  • 97 сообщений
  • Репутация: 3

Отправлено 15 Август 2015 - 11:13

@c0ns0l3, я так и не понял как правильно код написать, который вы привели. У меня та же задача. Вывести в цикле посты категории без первого поста. Потому что первый пост я уже вывел и оформил, с помощью следующего кода.

<div class="meta-header">
  <?php 
    $cat_id = 2; // ID рубрики
    $cat_url = get_category_link($cat_id); // url из ID рубрики
  ?>
  <a href="<?php echo $cat_url; ?>" target="_blank">Категория</a>
</div>
<div id="perviy-post">
  <?php $query = new WP_Query( array( 'category_name' => 'prep','posts_per_page' => 1 ) ); while ( $query->have_posts() ) {$query->the_post(); ?>
  <div class="left-block-last">
    <a href="<?php echo get_permalink(); ?>" title="" class="post-thumbnails"><?php the_post_thumbnail(); ?></a>
    <div class="title-img">
      <a href="<?php echo get_permalink(); ?>" title=""><?php the_title(); ?></a>
    </div>
      <a href="<?php echo get_permalink(); ?>"><p><?php the_excerpt(); ?></p>
  <?php } // end while ?>
  </div>
</div>

И теперь задача отсеять этот первый пост и вывести 4 поста без первого. Как сделать не знаю, знаний чтобы допилить код что выше написан не хватает. Можете помочь?


Сообщение отредактировал WebMaster: 15 Август 2015 - 11:14

  • 0

#16 WebMaster

WebMaster
  • Пользователь
  • 97 сообщений
  • Репутация: 3

Отправлено 15 Август 2015 - 11:43

@matroskin8, ваш код, что вы привели к сожалению не корректно работает. Первую статью я смог вывести без проблем. Подключил второй цикл и он начал выводить после этого все статьи всех категорий. Первую скрыл. Как доработать не знаю. Сижу думаю.

Доработал. Теперь выводит все статьи только из указанной категории.

<!-- второй цикл -->
<?php if (have_posts()) : 
$my_cat_prep = new WP_Query('category_name=prep');
while ($my_cat_prep->have_posts()) : $my_cat_prep->the_post();
if( $post->ID == $do_not_duplicate ) continue; update_post_caches($posts); // если попадается статья из первого цикла - пропускаем ее ?>
<?php the_title(); ?><br>
<?php endwhile; endif; ?>

  • 0


Оформление форума – IPBSkins.ru