Плагин пагинации wp_pagenavi при использовании custom post type на второй странице выдает 404 ошибку!

12
Dmitriy_2014
На сайте с 01.07.2014
Offline
329
510

Всем привет!

Помогите советом если кто знает пожалуйста, в общем при использовании Custom post type на второй странице архива записей, выводится ошибка 404, при использовании плагина Wp_pagenavi, посмотрел потыкал разные варианты, но ничего не помогает.

Заходил в Настройки -> Постоянные ссылки нажимал Сохранить изменения типа чтобы сбросить кеш этих путей, ничего не изменилось.

Нашел какой-то код, типа который решает эту проблему, но он тоже что-то не помог:

function mcpt_wpnavi() {

add_rewrite_rule( 'mycustompagetype/page/([0-9]+)/?$', 'index.php?pagename=mycustompagetype&paged=$matches[1]', 'top' );

}

add_action( 'init', 'mcpt_wpnavi' );

Чувак с форума поддержки плагина WP-PageNavi вроде тоже с такой-же проблемой только с Custom taxonomy дает ссылку на решение, но там тоже не понятно, я потыкал некоторые варианты и тоже ничего не изменилось.

https://wordpress.org/support/topic/custom-taxonomy-404-on-page-2/

А, да сама пагинация на сайте при помощи плагина Wp_pagenavi нормально работает, но для кастомного CPT типа поста, где выводится архив постов она и там появляется и все ок, но когда переходишь на вторую страницу то пишет ошибка 404. В общем не работает для кастомных типов постов.

Заранее всем спасибо за ответы и советы!


Custom taxonomy 404 on page 2 +
Custom taxonomy 404 on page 2 +
  • wordpress.org
[This thread is closed.] Hi there i have been at this most of the day and got nowhere – well somewhere… The pagination links are showing…
Dmitriy_2014
На сайте с 01.07.2014
Offline
329
#1

Переписал стандартный цикл в цикл WP_Query с указанием post_type, но ничего не дало.

А вот передача запроса в функцию вызова пагинации плагина wp_pagenavi дала еще более бредовый результат:

<?php wp_pagenavi( array('query' => $posts_index) ); ?>


Теперь на второй странице показываются посты, которые на первой, а на третьей 404 ошибка.

Переписал свой произвольный тип записи register_post_type, там почему-то в rewrite pages’=>false, поставил true, но по моему это тоже ничего не дало.

Одному только богу известно, что ему нужно, чтобы еще потыкать чтобы все сломать?
Dmitriy_2014
На сайте с 01.07.2014
Offline
329
#2

Может я вывожу их как-то не так:

<?php $posts_index = new WP_Query('post_type=mycustompagetype&orderby=date&posts_per_page=5&order=DESC'); ?>

<?php while ($posts_index->have_posts()) : $posts_index->the_post(); ?>

Заголовок, миниатюра, контент...

<?php endwhile; ?>

<?php wp_pagenavi( array('query' => $posts_index) ); ?>

<?php wp_reset_postdata(); ?>


Хотя вроде все выводится нормально, кроме постраничного перехода, вот тебе и кастомный тип поста, сто пудово дело в создании register_post_type нового типа и работе с ним, глюки где-то в ссылочной структуре и путях, но хз где.

Dmitriy_2014
На сайте с 01.07.2014
Offline
329
#3

При использовании стандартной пагинации next_posts_link при переходе на следующую вторую страницу также возникает ошибка 404.

А и да там глюк был не из-за добавления в wp_pagenavi параметра запроса query, а из-за изменения register_post_type параметра rewrite его значения с pages=flase на pages=true, опять при установке его в false при переходе на 2ю страницу просто 404 ошибка.
Dmitriy_2014
На сайте с 01.07.2014
Offline
329
#4
Ни советы со StackOverflow, ни гугление, ничего не помогает, что бы я не делал всегда при переходе на 2-ю, 3-ю и т.д. страницу выпадает 404 ошибка. И такое ощущение что дело не в плагине пагинации или стандартных функция WordPress’а для пагинации и даже не в составлении запроса цикла вывода постов, а в чем-то другом фиг знает в чем.
Dmitriy_2014
На сайте с 01.07.2014
Offline
329
#5
Я нашел в чем проблема, но от этого стало не лучше, короче проблема в параметре rewrite функции register_post_type которая регистрирует новый произвольный тип записи, и если её поставить в false, то все более или менее работает, но я теряю ЧПУ и ссылки выглядят как-то стремно – мой-сайт/page/2/?post_type=мойкастомныйпосттайп, вместо мой-сайт/мойкастомныйпосттайп/page/2/, да и в других местах не факт что будет нормальные ЧПУ урлы, короче фиг его знает что делать, но с другой стороны пагинация работает.
Dmitriy_2014
На сайте с 01.07.2014
Offline
329
#6

Помогите составить add_rewrite_rule правило, я так понимаю оно должно помочь в переходах с глючных 404 страниц на работающие которые через параметры.

Нужно с:

https://www.mysite.ru/mycustomposttype/page/2/

На:

https://www.mysite.ru/page/2/?post_type=mycustomposttype

Я накидал по чьему-то примеру, но оно походу не работает:

add_rewrite_rule( 'mycustomposttype/page/([0-9]+)/?$', 'index.php?pagename=mycustomposttype&paged=$matches[1]', 'top' );

Dmitriy_2014
На сайте с 01.07.2014
Offline
329
#7

Пацаны, братва, девчонки, ребята всем спасибо за помощь, разобрался я с этим add_rewrite_rule, и в моем случае это будет так:

add_rewrite_rule( 'mycustomposttype/page/([0-9]+)/?$', 'index.php?post_type=mycustomposttype&paged=$matches[1]', 'top' );

Все работает и теперь нету ошибки 404, а ссылки остаются с нормальным видом, я так и не понял это типа вид редиректа такого или внутренняя фигня WordPress’а, но главное это работает, да и ладно.

Если бы вы знали какой костыльный этот произвольный тип записи в WordPress созданный с помощью register_post_type, просто жесть, то одно отваливается то другое, видимо моя софтверная часть сайта будет ещё долго в состоянии разработки.
Dmitriy_2014
На сайте с 01.07.2014
Offline
329
#8

А, да и при построении цикла на основе WP_Query надо добавить свойство paged

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>

<?php $recent_posts_posttype = new WP_Query(['post_type' => 'mycustomposttype', 'orderby' => 'date', 'posts_per_page' => 5, 'order' => 'DESC', 'paged' => $paged]); ?>

Не знаю почему, но без него тоже глючит, и еще возможно количество постов должно совпадать со основными в настройках, хз, тут глюк на глюке и это все возможно только у меня будет работать, так что так, а вообще не создавайте никогда произвольных типов записей.
totamon
На сайте с 12.05.2007
Offline
437
#9
Dmitriy_2014 #:
а вообще не создавайте никогда произвольных типов записей.
произвольные типы записей используются в тысячах плагинов, и все работает и пагинация и чпу... просто ты что-то не то сделал, но потом исправил и все ж работает?))
Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
Dmitriy_2014
На сайте с 01.07.2014
Offline
329
#10
totamon #:
произвольные типы записей используются в тысячах плагинов, и все работает и пагинация и чпу... просто ты что-то не то сделал, но потом исправил и все ж работает?))
Да я не спорю, но я думал это будет как-то проще и я легко это вывезу и все просто будет работать да еще и с моей темой, на деле оказалось что пагинация не работает, некоторые функции в теме не работают, в сайдбаре не работают виджеты и вообще надо альтернативный сайдбар делать, да и некоторые виджеты с выводом постов, там нужно указывать посттайп, не все плагины видят новый тип, по умолчанию то что попадает в sitemap.xml не попадает из нового типа поста, и еще масса мелочей которые я просто заметил мимо ходом глазами, даже не знаю сколько еще там косяков которые в глаза не бросаются, некоторые плагины на пример по подбору related постов выдавали ошибки и т.д. и т.п. Бог его знает что там еще не так и чего я не вижу глазками :). Ну да и те создатели плагинов профи, а я из серии, да ты просто создай отдельный произвольный тип поста для программ и все будет ОК, ага, конечно.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий