Как разбить результаты на страницы с помощью пользовательских типов записей в WP? - PullRequest
3 голосов
/ 04 августа 2010

об этом уже спрашивали на форумах WP, но ни одно из решений не помогло мне, я сбросил постоянные ссылки и т. Д. Безрезультатно. Надеюсь, у вас, ребята, есть ответ. Это моя установка:

У меня есть пользовательский тип записи, называемый ted_venue, и два шаблона, single-ted_venue.php (сведения об одном месте) и page-venues.php (для отображения списка мест). Структура постоянных ссылок - site.com/venues/venue-slug для подробностей места и site.com/venues для списка мест.

Это код нумерации страниц в списке мест:

$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$wp_query = new WP_Query(array('post_type' => 'ted_venue',
'paged' => $paged,
'posts_per_page' => 30)
);

if ($wp_query->have_posts()):

?>

<ul>
<?php while ($wp_query->have_posts()): $wp_query->the_post(); ?>
...

Затем внизу я добавляю несколько ссылок на страницы. Если я захожу на site.com/venues/page/2, это приводит к ошибке 404.

Затем, если я сбрасываю постоянные ссылки на значения по умолчанию, а затем на текущие, нумерация страниц списка мест работает нормально, а детали одного места - нет. Таким образом, в основном, когда нумерация страниц работает на одном месте, нет и наоборот.

Кто-нибудь знает, что может происходить, или, по крайней мере, можете ли вы указать мне статью или живой пример работы?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 07 августа 2010

Хорошо, вот почему это не работает:

Вы добавляете «постраничный», в то время как WordPress все еще думает, что он находится на статической странице, поэтому постраничный будет всегда 1. К сожалению, нет способа сделать то, что вы хотите сделать, как вы делаете это прямо сейчас , но есть и другие решения.

Существует два основных способа исправить это: во-первых, вы можете переопределить правила перезаписи, которые генерирует ваш тип поста, сами (это лучший, но и самый сложный способ, который потребует нескольких дней работы, чтобы выяснить, как переписать движок реально работает). Второй способ (простой способ, который также работает отлично, но не обязательно является лучшим) - использовать код «Умнее настраиваемых типов записей» Мэтта Вибе, приведенный здесь:

http://somadesign.ca/projects/smarter-custom-post-types/

0 голосов
/ 04 августа 2010

Попробуйте добавить 'order_by' => 'menu_order', так как это единственное отличие, которое я вижу в вашем коде и других, у которых работает пользовательская постраничная постация (вторая запись) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...