Шорткод, появляющийся в верхней части содержимого

#php #html #wordpress #shortcode #wordpress-shortcode

#php #HTML #wordpress #короткий код #wordpress-короткий код

Вопрос:

В настоящее время я пытаюсь добавить шорткод на свой сайт WordPress, но на данный момент он отображается в верхней части страницы вместо позиции, в которой я его разместил.

Все работает хорошо, кроме этой проблемы.

 
    // function that runs when shortcode is called
    function testimonial_short() { 
        if( get_query_var( 'page' ) ) { 
            $page = get_query_var( 'page' ); 
        } else { 
            $page = 1; 
        }
        $args = array(
            'post_type' => 'drivers',
            'posts_per_page' => 4,
            'paged' => $page
        );
        $products = new WP_Query( $args );
        ?>
        <div class="owl-carousel owl-theme">
        <div class="testimonial-outer">
                <div class="image-col">
                <img class="testimonial-img" src="<?php echo get_field('image');?>">
                </div>
                <!-- image-col -->
                <div class="text-col">
                <h4>
                    <?php echo get_field('name');?>
                </h4>
                <p>
                    <?php echo get_field('testimonial');?>
                </p>
                </div>
                <!-- text-col -->
            </div>
            <!-- testimonial-outer -->
        </div>
        <?php
    } 
    // register shortcode
    add_shortcode('testimonial', 'testimonial_short');

 

Ответ №1:

Ваша testimonial_short функция не возвращает HTML-код, а немедленно выводит его. Это приводит к тому, что он появляется в верхней части страницы, поскольку шорткод вычисляется, хотя еще ничего не было отправлено.

Попробуй:

 function testimonial_short(){
    ...
    return "<div>my html</div>";
}