У меня есть статический слайдер, который я использую для запуска отзывов, вместо того, чтобы жестко печатать, я хочу вытащить их из настраиваемого типа сообщений WordPress, который я настроил, может ли кто-нибудь указать мне в правильном направлении:
<section class = "testimonials">
<div class = "container text-center">
<div class = "row">
<div class = "col-md-12">
<div class = "slick-testimonial">
<div class = "item">
<div class = "testimonial">
<img src = "<?php bloginfo('template_url'); ?>/images/icons/testimonals.png" class = "center-block">
<h1>What our customers say</h1>
<h3>"Fantastic service"</h3>
<p>Review Text Here</p>
<p class = "name">Customer Name 1</p>
</div>
</div>
<div class = "item">
<div class = "testimonial">
<img src = "<?php bloginfo('template_url'); ?>/images/icons/testimonals.png" class = "center-block">
<h1>What our customers say</h1>
<h3>"Excellent"</h3>
<p>Review Text Here</p>
<p class = "name">Customer Name 2</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
Я считаю, что мне нужно вытащить массив для пользовательского типа сообщения и в элементе вытащить имя заголовка и текст, но не знаю, как его написать, спасибо.






Вам просто нужно взаимодействовать с классом WordPress WP_Query. Это де-факто способ получить несколько сообщений.
Я бы также подумал о некоторой реструктуризации вашего слайдера, чтобы «Что говорят наши клиенты» было вне отдельным элементом слайда, но я отвлекся:
Все, что вам нужно сделать, это установить новый WP_Query и заменить div item простым циклом while:
<?php
$slider_args = array(
'post_type' => 'testimonials',
'posts_per_page' => 10
);
$slider_query = new WP_Query( $slider_args );
?>
<section class = "testimonials">
<div class = "container text-center">
<div class = "row">
<div class = "col-md-12">
<div class = "slick-testimonial">
<?php
if ( $slider_query->have_posts() ){
while( $slider_query->have_posts() ){ $slider_query->the_post(); ?>
<div class = "item">
<div class = "testimonial">
<img src = "<?php bloginfo('template_url'); ?>/images/icons/testimonals.png" class = "center-block">
<h1>What our customers say</h1>
<h3><?php the_title(); ?></h3>
<p><?php the_content(); ?></p>
<p class = "name"><?php echo get_post_meta( get_the_ID(), 'reviewer_name', true ); ?></p>
</div>
</div>
<?php }
} else { ?>
<div class = "item">
<div class = "testimonial">
<h3>No Testimonials Found</h3>
</div>
</div>
<?php }
wp_reset_postdata();
?>
</div>
</div>
</div>
</div>
</section>
Обратите внимание, что этот код делает несколько предположений. Вам нужно будет заменить post_type на имя CPT, которое вы зарегистрировали, и вы можете настроить количество получаемых с помощью аргумента posts_per_page. Я выбрал 10 только потому, что.
Это также предполагает, что вы сохраняете имя рецензента в метаполе с именем reviewer_name, но этого должно быть достаточно, чтобы вы начали
Отлично, рад помочь! Не могли бы вы пометить ответ как принятый (щелкнув галочку), чтобы он мог лучше помочь другим в решении аналогичных проблем?
Привет, спасибо за ответ, это действительно помогло, и теперь оно работает так, как я хочу!