Использование масонства. Как сделать каждое эскизное изображение X-го столбца несколькими столбцами?

Конкретно:

  • Я использую масонство, чтобы показать все должности в определенной категории
  • Изображения миниатюр для каждого сообщения отображаются на странице категории в формате с тремя колонками с использованием столбцов ширины полосы CSS
  • Мне нужно показать 7-е изображение миниатюр, охватывающее ширину всех трех столбцов

Раньше я добавлял счетчик сообщений, предназначенных для X-й публикации, для соответствующего применения класса и стиля. Но разве это возможно с масонством, которое абсолютно позиционирует элементы?

РЕДАКТИРОВАТЬ

Я использую этот код для запроса сообщений на странице кладки:

if ( get_query_var( 'paged' ) ) { $paged = get_query_var( 'paged' ); } elseif ( get_query_var( 'page' ) ) { $paged = get_query_var( 'page' ); } else { $paged = 1; } $args = array( 'posts_per_page' => 12, 'paged' => $paged ); // Override the primary post loop query_posts( $args ); 

Это не должно быть проблемой с масонством, по крайней мере, у меня никогда не было этого (или аналогичного эквивалентного изотопа). На самом деле это просто красота этих библиотек, что вы можете иметь такой макет. Остальное сводится к правильным стилям CSS. Я не знаю, как вы применяете свой класс counter / index, но я бы сделал это, как показано ниже:

 function wpse151589_indexed_post_class( $classes ) { global $wp_query; // the current_post property value starts counting at 0 // we are doing + 1 to start from 1 $index = $wp_query->current_post + 1; // if you want the number to always have 3 digits // like 001, uncomment the next line //$index = sprintf( '%1$03d', $index ); // results in classes like post-nr-1/001 $classes[] = 'post-nr-' . $index; return $classes; } add_filter( 'post_class', 'wpse151589_indexed_post_class' ); 


Редактировать: Ответить на комментарий

Есть некоторые вещи, которые я хотел бы отметить,

  1. Не используйте query_posts()

    Существует причина, почему даже на соответствующей странице codex указано:

    Эта функция не предназначена для использования плагинами или темами. Как поясняется ниже, есть более эффективные, более эффективные варианты для изменения основного запроса.

    И позже:

    Для общих почтовых запросов используйте WP_Query или get_posts .

    А также:

    Настоятельно рекомендуется использовать фильтр pre_get_posts и изменить основной запрос, проверив is_main_query

    Два самых информационных и выдающихся источника для почему на самом деле расположены здесь в WordPress Development, они абсолютно заслуживают внимания:

    • Когда следует использовать WP_Query vs query_posts () vs get_posts ()?
    • Когда использовать WP_query (), query_posts () и pre_get_posts
  2. То, что post_class() не может использоваться вне цикла, неверно

    В документации есть даже раздел об этом. Конечно, страница codex для post_class не самая лучшая, но есть достаточно ясно, что функция имеет два параметра: $classes и $post_id .

     post_class( $classes, $post_id ); 

    Что значит:

    Для отображения сообщений вне цикла или в альтернативном цикле вторым параметром функции post_class может быть идентификатор сообщения. После этого будут определены классы.

    Это – в дополнение к информации из 1. – делает очень возможным использовать это для вашей цели.

  3. Объект WP_Query имеет свойство с именем $current_post

    $ current_post
    (доступно во время цикла ) Индекс отображаемого сообщения.

    Его можно использовать для вашей цели, поэтому нет необходимости изобретать велосипед.

Поэтому я не мог понять, как добавить класс последовательности чисел в каждый столбец post / article, но я просто изменил шаблон для 7-го сообщения в шаблоне кладки.

Я сделал это так:

 <?php if ( have_posts() ) : ?> <?php /* Start the Loop */ ?> <?php while (have_posts()) : the_post(); ?> <?php $count++; ?> <?php if ($count == 7) : ?> <article class="masonry-entry masonry-3col masonry-post-no-7"> </article> <?php else: ?> <article class="masonry-entry masonry-3col"> </article> <?php endif; ?> <?php endwhile; ?>