Поддержка Проблемы и решения Вывод произвольной БД с пагинацией на WP

  • Добрый день, помогите отчаявшеемуся!
    Есть БД на 25к строк, их нужно вывести на произвольную страницу с пагинацией по 10 строк

    $wpdb — шлобализировал
    отправляю запрос в БД типа
    $newtable = $wpdb->get_results( «SELECT id FROM dsfaq_quest» );
    echo $newtable;

    на страницу выводится текст «Array»

    помогите кодом для вывода с пагинацией

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • print_r($newtable);

    только для начала добавьте в запрос LIMIT 10.

    Для пагинации прикрутить OFFSET

    • Ответ изменён 6 лет, 12 месяцев назад пользователем qwert555.

    В результате метода тыка получил вывод данных с помощью след. кода

    global $wpdb;

    $newtable = $wpdb->get_results( «SELECT id, name, email FROM wp_dsfaq_quest LIMIT 2»);

    print_r ($newtable);

    но теперь не могу понять как прикрутить пагинацию

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Добрый.

    Не сталкивался с подобной задачей, но в гугле находится много примеров с get_results и пагинацией — wpdb pagination wordpress. Пробовали уже что-то?

    Добрый день, результаты наконец-то вывел на страницу в нормальном виде с помощью кода

    
    <?php
    global $wpdb;?>
    <?
    $sql = "SELECT * FROM wp_dsfaq_quest ORDER BY date DESC LIMIT 39";
    $result = $wpdb->get_results($sql);
        foreach( $result as $results ) {
     ?>  
      
    <div id="paging quest-<? echo $result->id ?>">
    <div class="name"><? echo $results->name ?></div>
    <div class="date"><? echo $results->date ?></div>
    <div class="quest"><? echo $results->quest ?></div>
    <div class="answer"><? echo $results->answer ?></div>
    </div>
    
    <?
     }
    ?>
    

    Но теперь не могу прикрутить пагинацию, ни с помощью стандартных средств вордпрес (вывожу данные с таблицы, а не посты) ни с помощью ajax или jquery.

    Помогите пожалуйста с кодом пагинации.

    Текст вывожу как обычный html, теоретически я понимаю что код должен отсчитывать кол-во div id=»paging», а все остальное переносить дальше, но как это реализовать ума не приложу

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    <?php
    	if ( get_option('permalink_structure') ) {
    		$format = 'page/%#%';
    	} else {
    		$format = '&paged=%#%';
    	}
    	$args = array(
    		'prev_next' => true,
    		'prev_text' => __('<<'),
    		'next_text' => __('>>'),
    		'format' => $format,
    		'current' => $paged,
    		'end_size' => 2,
    		'mid_size' => 2,
    		'total' => $result->max_num_pages
    	);
    ?>
    <nav class="navigation">
    	<div class="nav-links">
    		<?php echo paginate_links( $args ); ?>
    	</div>
    </nav>

    Где $result->max_num_pages — общее кол-во страниц
    Вам надо в запросе указать с какой записи начинать выборку WHERE id > 5 напр

    это я понимаю, не понимаю одного, как этот код понимает сколько результатов в таблице и на сколько страниц эти результаты нужно разделить?

    Помогите привязать мой код к коду пагинации

    • Ответ изменён 6 лет, 12 месяцев назад пользователем sashacoolboy.
Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Вывод произвольной БД с пагинацией на WP» закрыта для новых ответов.