Como lidar com paginação / paginação com um permalink personalizado?

Espero que eu possa explicar isso corretamente:

Estou trabalhando em um projeto que envolve vários tipos de postagem e permalinks personalizados. Eu tenho um tipo de publicação para série de TV / filme / franquia e um tipo de publicação separado para conteúdo (episódios, filmes, Direto ao vídeo). Para o tipo de conteúdo, atualmente tenho um permalink que é assim:

abc.com/watch/%content_series%/%content_type%/%postname% 

Graças às regras de reescrita, a estrutura se degrada: eu posso ter abc.com/watch/%content_series%/%content_type%/ arquivo que são apenas abc.com/watch/%content_series%/%content_type%/ abc.com/watch/%content_series%/ abc.com/watch/%content_series%/%content_type%/ abc.com/watch/%content_series%/ abc.com/watch/%content_series%/%content_type%/ abc.com/watch/%content_series%/ abc.com/watch/%content_series%/%content_type%/ ou abc.com/watch/%content_series%/ sem problema. O problema com o qual eu toco é uma paginação. Se eu fiz abc.com/watch/one-piece/page/2 , acertei um snag porque, ao invés de reconhecer que eu quero a página 2, a página da opinião é um tipo de content_type e 2 é o name .

Um screencap do rewrite Analyzer confirma isso: insira a descrição da imagem aqui

Então, a reescrita certa está lá, é simplesmente não ter precedência. Existe uma maneira de fazer isso funcionar corretamente?

EDITAR: Aqui está o código que configura tudo:

 //Query vars/tags add_rewrite_tag('%content_series%','([^/]+)'); add_rewrite_tag('%content_type%','([^/]+)'); add_rewrite_tag('%content_num%','([0-9]{1,})'); //Permastructs $content_struct = get_option('veda_content_slug') . '/%content_series%/%content_type%/%postname%'; add_permastruct('veda_content', $content_struct, false); add_rewrite_rule( get_option('veda_content_slug') .'/?$', 'index.php?post_type=veda_content', 'top' ); 

Solutions Collecting From Web of "Como lidar com paginação / paginação com um permalink personalizado?"

Eu já compartilhei essa frustração exata antes. O seguinte deve ajudar a retornar qualquer sanidade perdida.

Sua primeira reescrita é bastante solta e não está vendo sua segunda reescrita porque a “página” corresponde ao seu segundo segmento de ([^ /] +). A maneira de corrigir isso é reverter a ordem de registro dentro do código. Se a reescrita paginada estiver abaixo da regra mais solta, coloque uma linha acima ou vice / versa onde quer que você registre as regras de reescrita.

Você verá as regras aparecendo corretamente no analisador.

Espero que isto ajude!

Tudo bem, depois de muita experiência, encontrei uma solução. Tudo o que eu tinha que fazer era criar algumas regras de reescrita personalizadas para fazê-lo funcionar:

 //Custom rewrites add_rewrite_rule( $slug . '/page/([0-9]+)?/?$', 'index.php?post_type=veda_content&paged=$matches[1]', 'top' ); add_rewrite_rule( $slug . '/([^/]+)/page/([0-9]+)?/?$', 'index.php?post_type=veda_content&paged=$matches[2]&content_series=$matches[1]', 'top' ); add_rewrite_rule( $slug . '/([^/]+)/([^/]+)/page/([0-9]+)?/?$', 'index.php?post_type=veda_content&paged=$matches[3]&content_series=$matches[1]&content_type=$matches[2]', 'top' ); 

Estes fazem o truque no analisador de reescrita. Espera que isso ajude alguém.