@freeman0204

Как сделать похожие посты на wordpress со своими стилями на masonry?

Это верста masonry, здесь показан один блок для примера:
<div class="grid">

      <div class="grid-item">
          <div class="overwrap-images">
              <a href=""><img src="images/555.jpg" alt=""></a>
              <div class="overwrap-date">
                  <a href="" class="date">12/04/2016</a>
                  <h3><a href="">Lorem ipsum dolor sit amet.</a></h3>
                  <p class="desc">
    Lorem ipsum dolor sit amet.
                  </p>
              </div>
          </div>
      </div>

    </div>


Это код на php для вывода похожих записей в wordpress:

<?php $categories = get_the_category($post->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids, // Сортировка производится по категориям
'orderby'=>rand, // Условие сортировки рандом
'post__not_in' => array($post->ID),
'showposts'=>5, //Количество выводимых записей
'caller_get_posts'=>1); // Запрещаем повторение ссылок
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<ul>';
        while ($my_query->have_posts()) {
            $my_query->the_post();
        ?>
            <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
        <?php
        }
        echo '</ul>';
    }
wp_reset_query();
}


Если вставить весь это скрипт сюда:

<div class="grid">
      <div class="grid-item">
Сюда
</div>
</div>


то в один блок масонри поместились все 5 постов и стилей у них не. Еще судя по коду в нем автоматически создается список. Может он мешает?

<div class="grid">
      <div class="grid-item">
<ul>
<li>
<a>
Сюда
</a>
</li>
<//ul>
</div>
</div>


Как правильно вставить код php что бы масонри работало нормально?
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
Palych_tw
@Palych_tw
Типа веб-разработчик
Вот эту часть
if( $my_query->have_posts() ) {
echo '<ul>';
        while ($my_query->have_posts()) {
            $my_query->the_post();
        ?>
            <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
        <?php
        }
        echo '</ul>';
    }


Заменить на:

if( $my_query->have_posts() ) {
echo '<div class="grid">';
        while ($my_query->have_posts()) {
            $my_query->the_post();
        ?>
           <div class="grid-item">
          <div class="overwrap-images">
              <a href="<?php the_permalink();?>"><?php the_post_thumbnail();?></a>
              <div class="overwrap-date">
                  <a href="<?php the_permalink();?>" class="date"><?php the_date('d/m/Y');?></a>
                  <h3><a href="<?php the_permalink();?>"><?php the_title();?></a></h3>
                  <p class="desc">
    <?php the_excerpt();?>
                  </p>
              </div>
          </div>
      </div>

        <?php
        }
        echo '</div>';
    }


Нужно иметь хоть базовые представления. Читаем: IF - php.net/manual/ru/control-structures.if.php
WHILE - php.net/manual/ru/control-structures.while.php
Цикл WP - https://codex.wordpress.org/Цикл_WordPress
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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