WordPress как на ладони

Нужна помощь в создании постов на WP

Я занимаюсь бэкэндом на WP недавно, уже есть результаты, но столкнулась с трудностью.
У меня есть посты, которые я успешно вывела и добавляю с помощью записей и редактора групп полей. Посты на странице у меня выглядят так - превью и название, а при клике на статью должна открываться модалка с текстом статьи. На html у меня это настроено всё, а на WP не получается, создала 4 статьи с разными текстами, и при клике на любую статью открывается всегда модалка с самым последним добавленным описанием.

Нужно, чтобы открывалась модалка именно с текстом данной статьи, буду благодарна, если кто поможет, кусок кода прилагаю ниже:

<?php
global $post;

$myposts = get_posts( [
	'posts_per_page' => 99,
	'category_name' => 'blog',
	'post_type' => 'post',
] );

foreach( $myposts as $post ){
	setup_postdata( $post );

	?>
<a class="useful__slide" href="#article-1" data-fancybox>
						<div class="useful__wrap">
							<div class="useful__img"><img
									src="<?php the_field('blog_image') ?>" alt="Фото статьи">
							</div>
							<div class="useful__info">
								<p><?php the_title();?></p>
							</div>
						</div>
							<div class='modal-info' id="article-1">
								<h3><?php the_field('blog_name_in_window');?></h3>
								<p><?php the_content();?></p>

							</div>
</a>
	<?php
}
wp_reset_postdata();
?>
0
Polina Miroshnichenko
2.1 год назад 2
  • 1
    stepan2278 www.weblancer.net/users/stepanko/?affili...

    Все очень просто и сложно одновременно.
    Чтоб работал ваше код - то каждому блоку модальному - нужен свой уник ID

    <?php
    global $post;
    
    $myposts = get_posts( [
    	'posts_per_page' => 99,
    	'category_name' => 'blog',
    	'post_type' => 'post',
    ] );
    
    foreach( $myposts as $post ){
    	setup_postdata( $post );
    
    	?>
    <a class="useful__slide" href="#article-<?php echo $post->ID; ?>" data-fancybox>
    						<div class="useful__wrap">
    							<div class="useful__img"><img
    									src="<?php the_field('blog_image') ?>" alt="Фото статьи">
    							</div>
    							<div class="useful__info">
    								<p><?php the_title();?></p>
    							</div>
    						</div>
    							<div class='modal-info' id="article-<?php echo $post->ID; ?>">
    								<h3><?php the_field('blog_name_in_window');?></h3>
    								<p><?php the_content();?></p>
    
    							</div>
    </a>
    	<?php
    }
    wp_reset_postdata();
    ?>

    В коде заменил
    article-1
    на
    article-<?php echo $post->ID; ?>

    А сложно то, что по хорошему - скорее всего нужно открывать тексты (подгружать) через AJAX
    Но если вам нужно, чтоб контент индексировался SEO роботами - то нужно оставить так, как есть сейчас.

    campusboy 2.1 год назад

    Судя по этому комментарию Ваш ответ правильный, поэтому помечу его как решённый. Спасибо, что помогаете пользователям сайта!

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация