serii81
@serii81
Я люблю phр...

Как выбрать каждый второй элемент в цикле php, но необязательно, что он будет парным?

Я вывожу статьи в цикле wordpress.
Для каждой статьи я задал произвольное поле выводить на главной.
Теперь в получаю статьи, и для каждой второй нужно задать класс, чтобы эта статья отображалась зеркально по-горизонтали.
Вот код.
<?php $solutions_posts = new WP_Query( [
				'post_type'      => 'page',
				'post_parent'    => 6,
				'posts_per_page' => - 1
			] ); ?>
			<?php if ( $solutions_posts->have_posts() ): ?>
				<?php $i = 1;
				while ( $solutions_posts->have_posts() ): ?>
					<?php $solutions_posts->the_post(); ?>

					<?php if ( carbon_get_the_post_meta( 'crb_show_in_loop' ) == 'yes' ) : ?>
						<?php $class_reverse = ''; ?>
                        <?php vardump($i); ?>
						<?php if ( $i % 2 === 0 ): ?>
							<?php $class_reverse = 'solutions-block__item--reverse'; ?>
						<?php endif; ?>

                        <div class="solutions-block__item <?php echo $class_reverse; ?>">
                            <img src="<?php echo carbon_get_the_post_meta( 'crb_solution_header_img' ); ?>">
                            <div class="solutions-block__content">
                                <h3 class="solutions-block__item-title"><?php the_title(); ?></h3>
                                <p class="solutions-block__text"><?php echo carbon_get_the_post_meta( 'crb_solution_short_text' . get_lang() ); ?> </p>
                                <a class="btn"
                                   href="<?php the_permalink(); ?>"><?php echo carbon_get_theme_option( 'crb_solutions_button' . get_lang() );; ?></a>
                            </div>
                        </div>
					<?php endif; ?>
					<?php $i ++; endwhile; ?>
				<?php wp_reset_postdata(); ?>
			<?php endif; ?>


Только проверка $%2===0 не подходит, потому что и статья, с произвольным поле в false тоже выводится.
  • Вопрос задан
  • 645 просмотров
Решения вопроса 2
@maxeee52
$i ++ внеси во внутрь услувия
if ( carbon_get_the_post_meta( 'crb_show_in_loop' ) == 'yes' )

Или же делай выборку по МЕТАМ в WP_Query(array())
'meta_query' => array(
       array(
           'key' => 'crb_show_in_loop',
           'value' => 'yes',
       )
   )
Ответ написан
dimovich85
@dimovich85
https://u-academy.net/
Во-первых, такое можно просто через css сделать, nth-child посмотрите.
Во-вторых, можно создать переменную типа $class_text = ''; внутри цикла сделать if( какое-то поле равно 'зеркальная статья' ) $class_text = 'mirror'; а внутри html делать вот так: <div class="<?php echo $class_text; ?>">
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
опять ничего не понятно, но наверное надо инкрементить $i только если " статья, с произвольным поле в false" что бы это не значило
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы