WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на 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
4 месяца назад 2
  • 1
    stepan2058 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 4 месяца назад

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

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