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
год назад 2
  • 1
    stepan2273 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 11 месяцев назад

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

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