Transmiterea argumentelor personalizate în paginate_links
De exemplu, am domain.com/about?project=1 dar am permalink-uri activate și folosesc asta pentru a genera paginarea paginate_links. Problema este că linkurile generate arată astfel domain.com/about?project=1/page/1 și strică totul deoarece proiectul este interpretat ca 1/page/1.
Există o modalitate de a obține domain.com/about/project/1/page/1 în linkurile de paginare? Trimite aceste date dintr-un formular folosind metoda GET pentru a afișa proiectul.
Pentru a adăuga argumente la linkurile din paginarea postărilor, folosește argumentul 'add_args' în funcție. Trebuie să transmiți argumentele ca un array asociativ. Deci, pentru a adăuga project=1 la sfârșitul tuturor linkurilor tale, ai face asta:
global $wp_query;
paginate_links(array(
'total' => $wp_query->max_num_pages,
'current' => (get_query_var('paged') ? get_query_var('paged') : 1),
'base' => 'http://domain.com/about/%_%',
'format' => 'page/%#%',
'add_args' => array( 'project' => 1 /* sau orice alt număr de proiect este*/ ),
));
Sper că te-a ajutat!
EDITARE
Pentru a obține domain.com/about/projects/1/page/1, poți adăuga o structură personalizată de permalink. Presupun că about este o pagină.
function wpse21802_init(){
add_rewrite_rule( '([^/]+)/projects/([^/])/?$', 'index.php?pagename=$matches[1]&project=$matches[2]', 'top' );
add_rewrite_rule( '([^/]+)/projects/([^/])/page/(/d+)/?$', 'index.php?pagename=$matches[1]&project=$matches[2]&paged=$matches[3]', 'top' );
}
add_action( 'init', 'wpse21802_init' );
După adăugarea acestui cod, actualizează regulile de rescriere mergând la Setări -> Legături permanente.
Dar asta generează http://domain.com/about/page/1?project=1
Sein Oxygen
"Trim asta dintr-un formular folosind get pentru a afișa proiectul." Project este o variabilă $_GET în acel link, nu? 'add_args' => array( 'project' => absint($_GET['project'])
John P Bloch
Da, dar din nou citește întrebarea principală: Există vreo metodă de a obține domain.com/about/project/1/page/1 în link-urile de paginare? Trim asta dintr-un formular folosind get pentru a afișa proiectul.
Sein Oxygen
Am actualizat răspunsul meu, dar aș dori să subliniez că WordPress suportă deja acea structură URL doar prin utilizarea ierarhiei paginilor.
John P Bloch