get_posts()
или wp_query()
, мету с помощью get_post_meta()
и циклом собираете json данные как в этом примере Проблема при добавлении 10 тыс точек на яндекс карты api? $mask = array();
$mask['type'] = 'FeatureCollection';
foreach ( $variable as $key => $value ) {
$mask['features'][] = array(
"type" => 'Feature',
"id"=> $key,
"geometry" => array (
"type" => 'Point',
"coordinates" => [(float) $value->lat, (float) $value->long],
),
"properties" => array (
"balloonContentBody" => "<strong class='map-title'><a class='link' href='" . $value->post_link . "'>" . $value->post_title . "</a></strong>",
"balloonContentFooter" => "<a class='hidden' href='#'>Я был здесь!</a>",
"clusterCaption" => "<strong>" . $value->post_title . "</strong>",
"hintContent" => "<strong>" . $value->post_title . "</strong>"
)
);
}
json_encode( $mask )
передать в обработчик как в этом примере https://yandex.ru/dev/maps/jsbox/2.1/object_manager/ // собираем запрос
$my_query = new WP_Query( [
'numberposts' => 3,
'category' => 'news',
'post_type' => 'post',
] );
if ( $my_query->have_posts() ) {
// основной цикл
while ( $my_query->have_posts() ) {
$my_query->the_post();
the_title( '<h2>', '</h2>' );
}
wp_reset_postdata(); // возвращаем глобальный цикл
}
// получаем номер страницы пагинации
$current = absint( max( 1, get_query_var( 'paged' ) ? get_query_var( 'paged' ) : get_query_var( 'page' ) ) );
// собираем запрос
$my_query = new WP_Query( [
'post_type' => 'page',
'posts_per_page' => 10,
'paged' => $current,
] );
if ( $my_query->have_posts() ) {
// основной цикл
while ( $my_query->have_posts() ) {
$my_query->the_post();
###########
}
wp_reset_postdata(); // возвращаем глобальный цикл
// выводим пагинацию
echo wp_kses_post(
paginate_links( [
'total' => $my_query->max_num_pages, // количество берем из дефолтной опции запроса
'current' => $current, // текущая страница
] )
);
} else {
// выводим шаблон "нет контента", если в запросе нет постов
get_template_part( 'templates/content', 'none' );
}