#php #wordpress #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 amp;#8594;</a>
</div>
<?php endwhile;
wp_reset_postdata();?><?php
echo '</div>';
}
add_shortcode('post_grid', 'display_grid_func');
То, что я пробовал до сих пор:
-Я меняю тему
-Я отключил все плагины
-Я искал в гугле
Ответ №1:
Я решил эту проблему 🙂 Я использовал ob_start(); и вернул 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 amp;#8594;</a>
</div>
<?php endwhile;
wp_reset_postdata(); ?>
<?php echo '</div>';
return ob_get_clean();
}
add_shortcode('post_grid', 'display_grid_func');