Подскажите, пожалуйста, как передать шорткод хлебных крошек в динамически создаваемый блок, гугл не помог решить проблему..
У меня есть блок main__items в нем выводятся посты из определенной категории, в каждом посте есть шорткод breadcrumbs:
<div class="main__items">
<?php
$my_posts = get_posts( array(
'numberposts' => 4,
'category_name' => 'test',
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'post',
'suppress_filters' => true,
) );
foreach( $my_posts as $post ){
setup_postdata( $post );
?>
<div class="main__item">
<?php echo do_shortcode("[breadcrumb]"); ?>
<a href="<?php echo get_permalink(); ?>" class="main__img">
<?php the_post_thumbnail(); ?>
</a>
</div>
<?php
}
wp_reset_postdata();
?>
</div>
Также на этой странице есть кнопка "loadmore", которая подгружает посты при нажатии, эти посты создаются в functions.php:
<?php
add_action('wp_ajax_more_blog_ajax', 'more_blog_ajax');
add_action('wp_ajax_nopriv_more_blog_ajax', 'more_blog_ajax');
function more_blog_ajax() {
$page = (isset($_POST['page'])) ? $_POST['page'] : 1;
header("Content-Type: text/html");
$params = array(
'category_name' => 'test',
'post_status' => array('publish'),
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'post',
'suppress_filters' => true,
'posts_per_page' => 2,
'paged' => $page
);
$loop = new WP_Query($params);
$items = array();
if ($loop -> have_posts()) : while ($loop -> have_posts()) : $loop -> the_post();
$out = '';
$out .= '<div class="main__item"><a href="'. get_permalink() .'" class="main__img">'. get_the_post_thumbnail() .'</a></div>';
$items[] = $out;
endwhile;
endif;
wp_reset_postdata();
echo json_encode(array('count' => get_category(get_the_category(get_the_ID())[0]->term_id)->category_count, 'items' => $items));
wp_die();
}
?>
Суть вопроса: Как подставить шорткод в эту функцию, чтобы в вновь созданный пост добавлялись хлебные крошки?
На всякий случай, js функция которая принимает данные в шаблоне:
var page = 2;
function load_more() {
page++;
$.ajax({
url: ajax_params.url,
method: 'post',
dataType: 'json',
data: {action: 'more_blog_ajax', page: page},
success: function(data) {
var items = data.items.join("");
document.querySelector('.main__items').insertAdjacentHTML('beforeEnd', items);
if(data.count - page * 0 <= 0) {
document.querySelector(".btn_loadmore").style.display = "none";
}
}
});
return false;
}