Здравствуйте, делаю кнопку показать еще по примерам в интернете. Но что то не находит мои посты. В чем я ошибся? Тип записис называется projects.
вывод кнопки на фронте:
<?php
// текущая страница
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
// максимум страниц
$max_pages = $wp_query->max_num_pages;
// если текущая страница меньше, чем максимум страниц, то выводим кнопку
if( $paged < $max_pages ) {
echo '<div id="loadmore" style="text-align:center;" class="loadmore grey_button">
Показать ещё
<a href="#" data-max_pages="' . $max_pages . '" data-paged="' . $paged . '" class="button"></a>
</div>';
}
?>
js код:
jQuery(function($){
// определяем в переменные кнопку, текущую страницу и максимальное кол-во страниц
var button = $( '#loadmore a' ),
paged = button.data( 'paged' ),
maxPages = button.data( 'max_pages' );
button.click( function( event ) {
event.preventDefault(); // предотвращаем клик по ссылке
$.ajax({
type : 'POST',
url : misha.ajax_url, // получаем из wp_localize_script()
data : {
paged : paged, // номер текущей страниц
action : 'loadmore' // экшен для wp_ajax_ и wp_ajax_nopriv_
},
beforeSend : function( xhr ) {
button.text( 'Загружаем...' );
},
success : function( data ){
paged++; // инкремент номера страницы
button.parent().before( data );
button.text( 'Загрузить ещё' );
// если последняя страница, то удаляем кнопку
if( paged == maxPages ) {
button.remove();
}
}
});
} );
});
подключение скриптов и код фильтра из functions.php:
// подключение скриптов
add_action( 'wp_enqueue_scripts', 'true_loadmore_scripts' );
function true_loadmore_scripts() {
wp_enqueue_script( 'jquery' ); // в TwentyTwentyOne он не подключен по умолчанию
wp_register_script(
'true_loadmore',
get_stylesheet_directory_uri() . '/loadmore.js',
array( 'jquery' ),
time() // не кэшируем файл, убираем эту строчку после завершение разработки
);
wp_localize_script(
'true_loadmore',
'misha',
array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )
);
wp_enqueue_script( 'true_loadmore' );
}
// подключение скриптов
// фильтр
add_action( 'wp_ajax_loadmore', 'projects_loadmore' );
add_action( 'wp_ajax_nopriv_loadmore', 'projects_loadmore' );
function projects_loadmore() {
$paged = ! empty( $_POST[ 'paged' ] ) ? $_POST[ 'paged' ] : 1;
$paged++;
$args = array(
'post_type' => 'projects',
'paged' => $paged,
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) :
while ( $query->have_posts() ) :
$query->the_post();
get_template_part( 'template-parts/template', 'projects-catalog' );
endwhile;
else :
echo 'Не найдено записей по заданным параметрам';
endif;
die;
}
// фильтр