Elementor在编辑器中显示相同的短代码两次。

4

Elementor会将同样的短代码显示两次,一次在放置短代码的位置,另一次在头部右侧。这个问题只在编辑器中出现,在页面上它可以正常显示。请帮忙解决该问题,如何修复呢?

    function display_grid_func ( $atts ){
echo '<div class="post-grid">';
    $args = array(
        'post_type' => 'realizacje',
        'post_status' => 'publish',
        'posts_per_page' => 9,
        'cat' => 5
    );

    $loop = new WP_Query($args);

    while ($loop->have_posts()) : $loop->the_post(); ?>

        <div class="post-tile home">
            <a href="<?php the_permalink(); ?>">
                <img src="<?php the_post_thumbnail_url('tile-foto'); ?>" />
            </a>
                <a class="button-zobacz home" href="<?php the_permalink(); ?>">Zobacz &#8594;</a>
            
        </div>

    <?php endwhile;
    wp_reset_postdata();?><?php
    echo '</div>';
}

add_shortcode('post_grid', 'display_grid_func');

我尝试过的方法: - 更改主题 - 关闭所有插件 - 我在谷歌上搜索了一下
2个回答

9

我解决了这个问题 :) 我使用了 ob_start(); 和 return ob_get_clean();

function display_grid_func($atts)
{
    ob_start();
    echo '<div class="post-grid">';
    $args = array(
        'post_type' => 'realizacje',
        'post_status' => 'publish',
        'posts_per_page' => 9,
        'cat' => 5
    );

    $loop = new WP_Query($args);

    while ($loop->have_posts()) : $loop->the_post(); ?>

        <div class="post-tile home">
            <a href="<?php the_permalink(); ?>">
                <img src="<?php the_post_thumbnail_url('tile-foto'); ?>" />
            </a>
            <a class="button-zobacz home" href="<?php the_permalink(); ?>">Zobacz &#8594;</a>

        </div>

    <?php endwhile;
    wp_reset_postdata(); ?>
<?php echo '</div>';
    return ob_get_clean();
}

add_shortcode('post_grid', 'display_grid_func');

太棒了!我遇到了完全相同的问题,你帮我节省了很多时间。非常感谢你! - trevorp

0

这个也解决了我的问题,谢谢

function elementor_shorcode_test() {
      ob_start();
        elementor_shorcode_test_output();
    return ob_get_clean();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接