Почему у меня не работает кнопка «показать еще»?
Здравствуйте, делаю кнопку показать еще по примерам в интернете. Но что то не находит мои посты. В чем я ошибся? Тип записис называется projects.
вывод кнопки на фронте:
js код:
подключение скриптов и код фильтра из functions.php:
вывод кнопки на фронте:
<?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="https://qna.habr.com#" 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; }// фильтр

Смотрите также:

Красочный рейтинг новостей для DLE
Данным примером хочу показать, как стандартный рейтинг DLE "нравится-не нравится" визуально преобразовать в всякий интересный вид. Самое главное - этот способ не затрагивает файлы движка,
В комментариях запрещаются спам, а также реклама любых товаров и услуг, иных ресурсов.