get_template_part () не работает с плагином Advanced Custom Fields - PullRequest
0 голосов
/ 13 июня 2019

Я работаю над проектом WordPress. Я создал отзывы в специальном файле testimonials.php и назвал файл на странице о нас с помощью get_template_part, и он работает нормально, но когда я позвонил (testimonials.php) на домашнюю страницу, нет показать все части ввода.

Используйте плагин Advanced Custom Fields

Этот код

<!-- Start Section Testimonials -->
<section class="testimonials section-padding">
    <div class="carousel-right col-lg-7 col-md-7 col-sm-7 col-xs-12">
        <div class="owl-carousel">
            <?php $testimonials = array ('post_type' => 'Testimonials' , 'order' => 'ASC');
                $query = new wp_query($testimonials);
                    if ($query->have_posts()) {
                    while ($query->have_posts()){
                        $query->the_post(); ?>
                            <!-- Start Item 1 -->
                            <div class="testimonials-item">
                                <!-- Testimonials Text -->
                                <div class="testimonials-text-item">
                                    <?php the_content(); ?>
                                </div>
                                <!-- Testimonials Title -->
                                <div class="testimonials-title clearfix">
                                    <!-- Title Img -->
                                    <div class="title-img">
                                        <img src="<?php the_field('image'); ?>" alt="testimonials">
                                    </div>
                                    <!-- Title Text -->
                                    <div class="title-text">
                                        <h3><?php the_title(); ?></h3>
                                        <p><?php the_field('small_title'); ?></p>
                                    </div>
                                </div>
                            </div>
                            <!-- End Item 1 -->
                        <?php }} ?>
        </div>
    </div>
    <?php wp_reset_postdata(); ?>
    <!-- Start Title -->
    <?php $testimonials = get_field('testimonials'); ?>
    <div class="container">
        <div class="row">
            <div class="col-lg-4 col-md-5 col-md-5 col-sm-4 col-xs-12">
                <div class="testimonials-text clearfix">
                    <div class="title">
                        <span><?php echo $testimonials['small_title']; ?></span>
                        <h2><?php echo $testimonials['main_title']; ?></h2>
                    </div>
                    <div class="text-p">
                    <?php echo $testimonials['description']; ?>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- End Title -->
</section>

Часть, которая не появляется из Все входы

<span> <? php echo $ testimonials ['small_title']; ?> </ span>
<h2> <? php echo $ testimonials ['main_title']; ?> </ h2>
<? php echo $ testimonials ['description']; ?>

Ответы [ 2 ]

1 голос
/ 16 июня 2019

, если вы использовали это на одной странице, она работает хорошо, и если вам нужно, чтобы она работала на домашней странице, вам нужно добавить идентификатор страницы в функции ACF, например

$testimonials = get_field('testimonials',the_ID);
0 голосов
/ 13 июня 2019

1 - в зависимости от ваших кодов get_field ('testimonials') должен быть массивом, поэтому лучший способ - присвоить массиву значений по умолчанию для этой функции, например:

$testimonials = get_field('testimonials', array(
    'small_title' => '',
    'main_title' => '',
    'description' => ''
));

Таким образом, таким образом вы устанавливаете значения по умолчанию, если, если поле не является массивом или пустым, потому что несколько раз эта функция будет возвращать нулевое значение, если в текущей базе данных нет данных, записанных в базе данных.

2 - Следующая строка получает значение массива $ testimonials по заданному ключу:

echo $testimonials['small_title'];
echo $testimonials['main_title'];
echo $testimonials['description'];

Но что делать, если ключ не существует в массиве $ testimonials?вам нужно будет использовать PHP-функцию isset () с сокращенным условным выражением if , чтобы избежать появления предупреждающего сообщения или взлома HTML-кодов.

Это правильноспособ:

echo isset($testimonials['small_title']) ? $testimonials['small_title'] : '';
echo isset($testimonials['main_title']) ? $testimonials['main_title'] : '';
echo isset($testimonials['description']) ? $testimonials['description'] : '';

Надеюсь, это поможет вам решить проблему

...