Rezolvare eroare 404 la paginare pentru tipuri de postări personalizate
Am încercat toată ziua să rezolv această problemă dar nu am avut succes...
Am un tip de postare personalizat numit 'news' și un șablon de arhivă (archive-news.php), aici aș dori să afișez 2 postări cu paginare, care funcționează bine, până când încerc să navighez la 'pagina următoare' (/news/page/2) care returnează o eroare 404.
Aveți vreo idee cum să rezolv această problemă / ce fac greșit?
Am petrecut literalmente toată ziua încercând să găsesc o soluție căutând pe Google și forumurile WordPress, am găsit multe soluții, dar niciuna nu a funcționat până acum.
Funcția mea pentru tipul de postare personalizat: http://pastebin.com/uG1L6YNu
Regulile mele de rescriere afișate: http://pastebin.com/jbaDANYr

Acum funcționează pentru mine... pentru cei care întâmpinați aceeași problemă, se pare că tot codul era corect.
Problema era că WordPress este configurat implicit să afișeze 10 articole pe pagină, ceea ce intra în conflict cu interogarea mea (care limita la 2 articole). Pentru a rezolva problema, am modificat setarea din WordPress (Setări / Citire în panoul de administrare) la 1.

Această problemă apare mereu. După părerea mea, tipurile personalizate de articole nu sunt articole obișnuite, așa că ar trebui să existe o variabilă de interogare posts_per_page separată pentru fiecare tip de articol. Oricum, iată un răspuns care arată cum să ajustați valoarea posts_per_page din mers fără a modifica setările din admin: http://wordpress.stackexchange.com/questions/30757/change-posts-per-page-count/30763#30763

Această întrebare de la goto10 funcționează perfect și este mai bună dacă doriți să utilizați în continuare setarea posts per page pentru alte pagini. Rămân totuși curios de ce se întâmplă acest lucru, este prima dată când mi se întâmplă. Până acum am putut folosi posts_per_page
în mod normal fără să intre în conflict cu setările WordPress.

Mulțumesc mult pentru această informație! M-am chinuit ore întregi să modific regulile de rescriere și altele, iar se pare că aceasta era problema.

Am găsit o soluție aici: http://walrusinacanoe.com/web-development/742
Este elegantă și funcțională:
add_action( 'parse_query','changept' );
function changept() {
if( is_category() && !is_admin() )
set_query_var( 'post_type', array( 'post', 'your_custom_type' ) );
return;
}

Acest lucru chiar a funcționat pentru mine. Cealaltă soluție (WP-Admin / Settings / Reading / 1) nu a funcționat deloc.
Mulțumesc pentru asta! (ore pierdute depanând și căutând)

încearcă această variantă:
add_action('pre_get_posts','custom_pre_get_posts');
function custom_pre_get_posts( $query )
{
if( $query->is_main_query() && !$query->is_feed() && !is_admin()) {
$query->set( 'paged', str_replace( '/', '', get_query_var( 'page' ) ) );
}
}
add_filter('request', 'custom_request');
function custom_request($query_string )
{
if( isset( $query_string['page'] ) ) {
if( ''!=$query_string['page'] ) {
if( isset( $query_string['name'] ) ) {
unset( $query_string['name'] );
}
}
} return $query_string;
}
