2015-07-06 5 views
1

Я пытаюсь использовать различные методы в течение большей части последних трех дней, и я просканировал бесчисленные ответы здесь на поддержку StackOverflow и Wordpress. Возможно ли иметь разбиение на страницы в моем плагине, в котором перечислены сообщения для администратора?WordPress Pagination не работает в Plugin Admin

Мой плагин отображает сообщения для администратора, чтобы они могли просматривать определенные детали и добавлять/редактировать конкретные параметры для каждой страницы. Я понимаю, что это можно сделать с использованием метаданных на каждой отдельной странице, но мне нужно сделать так: Загрузите, скажем, 25 сообщений за раз, и позвольте администратору добавлять незначительные сведения о каждом из них.

Я пробовал все варианты (я говорю каждый, но давайте просто скажем, что это все варианты, которые я могу найти на 20 страницах или около того для Google для всех видов поисковых фраз) с использованием previous_posts_links, paginate_links() и т. Д .; Я пробовал использовать пользовательские функции wp_query(), создавая экземпляр новой wp_query и восстанавливая ее, когда я закончил (не рекомендуется), и вообще избегал использования query_posts(). Я пробовал добавлять pre_get_posts() функции - но на тот момент, в то время как get_posts() может быть быстрее, чем запуск нового wp_query(), по-видимому, это еще сложнее использовать с разбиением на страницы его результатов.

код я попытался включить всевозможные вариации этой идеи:

<?php 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;    
    $my_query = new WP_Query( 
     array(
     'number' => -1, 
     'posts_per_page' => '25', 
     'paged' => $paged 
    )); 

    while ($my_query->have_posts()) : $my_query->the_post(); 
    echo "<div style='border:2px groove black; margin-bottom:5px;'><h3 class='postlist'>"; 
    the_title(); 
    echo "</h3></div>"; 
    endwhile; ?> 

<nav> 
    <?php previous_posts_link('&laquo; Newer', $my_query->max_num_pages) ?> 
    <?php next_posts_link('Older &raquo;', $my_query->max_num_pages) ?> 
</nav> 

(я обрезанный из спасительных вещи так, что легче читать варианты). Отметив этот бит: $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; Я также пробовал его как «страницу», а не «выгружался», и это не имеет никакого эффекта.

Эта функция отображает то, что мне нужно: количество постов я ищу для загрузки, и, кажется, правильно получить нумерацию страниц и ссылок на пагинацией правильный, но при нажатии на любую ссылку постраничной генерироваться ничего не делает.

Я пробовал исправить Криса Койера относительно $temp = wp_query... etc, а затем восстановить его, но это тоже не сработает.

Любые идеи, чтобы получить эту работу? Огромное спасибо заранее! Я каждый день разорвал свои волосы часами и почти никуда не уходил.

EDIT: Кроме того, этот пример (ниже) берется непосредственно из Кодекса, производит пронумерованные ссылки, но в то время как у них есть правильный путь/URL для пагинации фактически не прогрессируют к странице 2, стр.3, или так на.

$big = 999999999; // need an unlikely integer 
echo paginate_links(array(
    'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 
    'format' => '?paged=%#%', 
    'current' => max(1, get_query_var('paged')), 
    'total' => $my_query->max_num_pages 
)); 

Это дает мне ссылки на 1, 2, 3 Следующая - но даже думал, что URL добавляет &page=2 ссылки не работают.

+0

Если вы вручную набираете номер страницы? = 2 и т. Д. ... это вообще работает? Проблема с ссылками для разбивки на страницы может быть связана с использованием значения «$ my_query-> max_num_pages» - я бы сохранил это как переменную, прежде чем запускать цикл while и использовать эту переменную в вашем коде разбиения на страницы. –

+0

Когда я набираю 'admin.php?page = my-plugin-posts & paged = 2' загружает ** первую ** страницу (как это делалось), но когда я набираю 'admin.php? page = my-plugin-posts & page = 2' (обратите внимание на' page' а не 'paged'), это дает мне уведомление об отсутствии у вас. Я попытался запустить '$ mnp = $ the_query-> max_num_pages;' перед циклом while и все еще ничего; Я также попытался запустить его перед циклом непосредственно после запроса и все равно ничего. EDIT: Спасибо, кстати. :) – RalphTheWonderLlama

+0

$ paged = (get_query_var ('paged'))? get_query_var ('paged'): 1; может быть ваша проблема тогда - вы могли бы просто попробовать ... '$ paged = isset ($ _ GET ['paged])? $ _GET ['paged]: 1; ваши ссылки на страницы должны ссылаться на страницы, а не страницу. –

ответ

1
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

может быть вашей проблемой, то - вы можете просто попробовать ...

$paged = isset($_GET['paged']) ? $_GET['paged'] : 1; 

ваших постраничной ссылок необходимо обратиться к страничной тогда, а не страницы.

Смежные вопросы