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

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

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

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

#1 Kodji

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

Отправлено 24 Апрель 2012 - 17:41

Вот такой вопрос, как вывести статьи как тут http://dimox.name/
Первая статья выводится как обычно, а остальные в виде сетки. Вот такой вопрос, как это сделать ?

 

 

  • 0

#2 matroskin8

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

Отправлено 24 Апрель 2012 - 17:55

Например, используя мультицикл. Первым циклом выбирается последняя статья, вторым - все статьи, кроме последней.
  • 0


#3 Kodji

Kodji
    Topic Starter
  • Пользователь
  • 18 сообщений
  • Репутация: 3

Отправлено 24 Апрель 2012 - 17:56

Чуть поподробнее если можно) Я в этом не особо разбераюсь


  • 0

#4 matroskin8

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

Отправлено 24 Апрель 2012 - 19:48

Пожалуйста - в документации описано все даже с примерами.
  • 0


#5 Kodji

Kodji
    Topic Starter
  • Пользователь
  • 18 сообщений
  • Репутация: 3

Отправлено 25 Апрель 2012 - 13:45

Спасибо, но что то не могу всё не как разобраться
  • 0

#6 matroskin8

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

Отправлено 25 Апрель 2012 - 17:48

Могу порекомендовать бесплатный видеокурс по созданию темы WordPress, после которого, думаю, Вам станут более понятны подобные вопросы.
  • 1


#7 Kodji

Kodji
    Topic Starter
  • Пользователь
  • 18 сообщений
  • Репутация: 3

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

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


  • 0

#8 matroskin8

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

Отправлено 26 Апрель 2012 - 22:14

Я уже давал ссылку на документацию, где описан как раз этот пример. Приведу его оттуда со своими комментариями:

<?php $my_query = new WP_Query('category_name=featured&showposts=1'); // выбираем последнюю статью
  while ($my_query->have_posts()) : $my_query->the_post();
  $do_not_duplicate = $post->ID; // запоминаем id выбранной статьи ?>
    <!-- выводим статью с нужным форматированием... -->
  <?php endwhile; ?>
<!-- конец первого цикла -->

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

Это один из вариантов, который, правда, не лишен некоторых недостатков. Возможны еще варианты.
В общем, ничего сложного... вместо одного цикла запускаем 2, создавая для первого объект wp_query. Как на словах объяснить доступнее я даже и не знаю. Если нужен наглядный пример, то на сайте с приведенным выше курсом есть раздел Премиум, где публикуются уроки цикла "Работа с WordPress". В одном из уроков (который вскоре будет опубликован в разделе Премиум) по просьбе наших подписчиков я как раз и показываю как решается именно эта задача.
  • 0


#9 denis

denis
  • Заблокированные
  • 173 сообщений
  • Репутация: -13

Отправлено 28 Апрель 2012 - 11:25

автор блога http://dimox.name/ написал мне. Какой в итоге должен быть файл index.php, если сейчас такой: http://codepaste.ru/10277/. Заранее благодарю!


  • 1

#10 c0ns0l3

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

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

Ребята, зачем вы ломаете себе голову вообще?
Откройте Кодекс, включаем мозг и смотрим в обжект wp_query!
Находим там встроенный обжект posts!
$wp_query->posts
И видим что? Видим масив постов, которые относятся к странице, на которой вы находитесь.
и Простой цикл.
foreach($wp_query->posts as $post_num=>$my_post) {
if($post_num!=0){
все посты кроме первого
}else{
первый пост
}
}

Забыл добавить.. my_post -> Object.. в котором все данные по посту увидите... воспользуйтесь print_r($my_post) или var_dump($my_post)

а лучше всего на сам wp_query --->>> своего рода дебаг... echo '<pre>'.print_r($wp_query).'</pre>';
Только если вы обращаетесь из ф-ции, не забудьте объявить переменную глобальной, а если хост хиленький - линкуйтесь на переменку... особенно если на лету будите ее изменять, т.к. кеш встроенный в ВП - хитрая штука...
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


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