Настраиваемый тип сообщения Slick Slider Wordpress

У меня есть статический слайдер, который я использую для запуска отзывов, вместо того, чтобы жестко печатать, я хочу вытащить их из настраиваемого типа сообщений 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>

Я считаю, что мне нужно вытащить массив для пользовательского типа сообщения и в элементе вытащить имя заголовка и текст, но не знаю, как его написать, спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
1 176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам просто нужно взаимодействовать с классом 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, но этого должно быть достаточно, чтобы вы начали

Привет, спасибо за ответ, это действительно помогло, и теперь оно работает так, как я хочу!

Jenova1628 11.09.2018 10:11

Отлично, рад помочь! Не могли бы вы пометить ответ как принятый (щелкнув галочку), чтобы он мог лучше помочь другим в решении аналогичных проблем?

Xhynk 11.09.2018 18:37

И, безусловно, будет. Дайте WP_Query прочитать, как по-настоящему погрузиться в него - но по сути вы просто заменяете post_type тем типом сообщения, который хотите получить (если вы его опустите, по умолчанию он также будет сообщениями)

Xhynk 11.09.2018 18:38

Другие вопросы по теме