Плагин Pagenavi и пользовательская ошибка навигации по типу записей (404) - PullRequest
0 голосов
/ 03 марта 2011

У меня похожая проблема с этим (https://wordpress.stackexchange.com/questions/9593/custom-post-type-archive-with-pagination) и я не могу понять, что делать!

У меня есть пользовательское имя типа «галерея», и я создал шаблон для отображения всех элементов «галереи». URL-адрес www.domain.com/gallery. Я использую плагин WP_Pagenavi. Всякий раз, когда я пытаюсь перейти на страницу 2 или выше, URL становится www.domain.com/gallery/page/2 и возвращает страницу 404. Я везде читал об этом, и я думаю, это как-то связано с правилами переписывания, запросом и чем-то еще!

Я попытался добавить

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

Дело в том, что я не хочу менять структуру постоянных ссылок, которая теперь называется /%postname%/.

.

Вот мой полный код

        <?php

        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $args = array(
            'post_type' => 'gallery',
            'paged' => $paged,
            'showposts' =>24
            ); query_posts($args);

        if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>


                ...stuff here...

                <?php endwhile; endif; ?>


        <?php 
            wp_pagenavi( );
        ?>

и вот мой код functions.php для галереи

add_action('init', gallery);
function gallery() {
$args = array(
        'label' => __('Gallery'),
        'singular_label' => __(Gallery),
        'public' => true,
        'show_ui' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'rewrite' => true,
        'supports' => array('title', 'editor', 'thumbnail', 'custom-fields')        
);

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

Я дергаю себя за это (grrrrr). Заранее спасибо!

1 Ответ

0 голосов
/ 03 марта 2011

Ваша проблема - структура постоянных ссылок./% postname% / - ужасная структура из-за того, как она попадает в базу данных.У вас всегда будут проблемы с пользовательскими типами записей и пользовательскими таксономиями, если вы не включите /% category% / в структуру постоянных ссылок.Я просто всегда использую /% year% /% category% /% postname% /

Если вы настаиваете на структуре постоянных ссылок выше, это должно решить вашу проблему.

add_rewrite_rule('projects/page/([0-9]+)/?$', 'index.php?pagename=projects&paged=$matches[1]', 'top');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...