Transmiterea și primirea variabilelor query în WordPress
Am două pagini de autori, una afișează aproximativ 5 postări. Apoi încerc să configurez o altă pagină care va conține toate postările lor. Am creat un șablon numit moreauthorposts.php și încerc să transmit variabila author către această pagină. Problema este că dacă trimit domain.com/more-author-posts?author=johndoe aceasta este eliminată. Cum pot recupera această valoare? Este măcar posibil în WordPress? Știu că WP Rewrite îmi modifică cumva structura URL-ului, doar că nu sunt sigur cum.
Am încercat:
get_query_var('author')
și am încercat să citesc acest document dar nu am avut succes:
http://codex.wordpress.org/Query_Overview
Sugestii?
Mulțumesc.

Sunt aproape sigur că author
este încorporat în WordPress, așa că folosește ceva de genul author_more
. Va trebui mai întâi să adaugi acea variabilă la query_vars
. Exemplu:
// adaugă `author_more` la variabilele de interogare
add_filter( 'init', 'add_author_more_query_var' );
function add_author_more_query_var()
{
global $wp;
$wp->add_query_var( 'author_more' );
}
Apoi, în fișierul șablon more-author-posts.php
, poți să o apelezi astfel:
if ( get_query_var( 'author_more' ) )
{
// execută logica ta
}
Actualizare
Acest lucru funcționează în următorul exemplu de URL/caz de utilizare:
http://exemplu.ro/index.php?author_more=valoare
Dar dacă dorești să utilizezi acest lucru ca un URL prietenos, va trebui să adaugi o regulă de rescriere:
add_action('init','add_author_more_rewrite_rule');
function add_author_more_rewrite_rule()
{
add_rewrite_rule(
'more-author-posts/(\d*)$',
'index.php?author_more=$matches[1]',
'top'
);
}
Acum poți să-l folosești astfel:
http://exemplu.ro/more-author-posts/valoare

Bun, am adăugat variabilele de interogare în functions.php. Apoi am adăugat celălalt cod pentru postările suplimentare ale autorului. Care ar fi structura corectă a URL-ului pentru a le transmite? Știu că paged folosește formatul /page/2 dar încercarea cu more-author-posts/more_author/johndoe nu pare să funcționeze?

Problema este că nu încerc să transmit variabilele către index.php. Încerc să le transmit către șablonul personalizat pe care l-am dezvoltat, deoarece arată complet diferit față de index. Deci dacă transmit valori către moreauthor.php?author_more=johndoe.. asta nu pare să funcționeze. Fac ceva greșit aici?

@בניית אתרים arată ca un răspuns foarte clar! @codeisforeva Nu ar trebui să apelezi direct fișierul șablon, nu-i așa? index.php este doar fișierul root al WordPress, fiecare regulă de rescriere ar trebui să treacă prin acesta.

Deci nu este posibil să configurezi un șablon personalizat și să îi transmiți variabile personalizate în WordPress? Aș crede că aceasta ar fi o limitare majoră a platformei.

Am reușit să funcționeze cu index.php, mulțumesc mult pentru ajutor. Doar mi se pare ciudat că nu poți face asta cu alte șabloane.

nu chiar, pentru că poți gestiona toate cererile GET printr-un singur fișier index.php
