add_rewrite_rule() nu funcționează
Trebuie să transmit o referință de proprietate din ultima parte a unui URL pentru a căuta o intrare în baza de date, de exemplu,
Trebuie să transmit G638 într-un array pentru plugin-ul meu. Ceea ce am mai jos apelează pagina cottage-details, dar elimină ultima parte a URL-ului și afișează o pagină goală, în loc să afișeze informațiile pe care doresc să le preiau de pe server. Dacă folosesc
funcționează perfect.
/**
* Tag-uri de rescriere pentru plugin
*/
function dcc_rewrite_tags() {
add_rewrite_tag('%propref%', '([^&]+)');
}
add_action('init', 'dcc_rewrite_tags', 10, 0);
/**
* Reguli de rescriere pentru plugin
*/
function dcc_rewrite_rules() {
add_rewrite_rule('^[^/]*/([^/]*)/?','index.php?p=2&propref=$matches[1]','top');
}
add_action('init', 'dcc_rewrite_rules', 10, 0);
Ce se întâmplă?

Regula ta de rescriere este destul de largă și va genera cel mai probabil multe conflicte.
add_action('init', 'dcc_rewrite_tags');
function dcc_rewrite_tags() {
add_rewrite_tag('%propref%', '([^&]+)');
}
add_action('init', 'dcc_rewrite_rules');
function dcc_rewrite_rules() {
add_rewrite_rule('^cottage-details/(.+)/?$','index.php?page_id=2&propref=$matches[1]','top');
}
Apoi poți accesa variabila de interogare propref
astfel:
$propref = get_query_var( 'propref' );
Și nu uita să reîncarci regulile de rescriere; poți face acest lucru mergând la Setări -> Legături permanente și dând clic pe butonul de salvare.
Notă: am schimbat variabila de interogare p
în page_id
deoarece, după cum ai menționat în comentarii, folosești o pagină, nu un articol standard.

Da, asta e una dintre multele combinații pe care le-am încercat. Nici asta nu funcționează. Am descărcat acest plugin: https://wordpress.org/plugins/monkeyman-rewrite-analyzer/ și arată că regula este corectă și totul ar trebui să fie în regulă, dar din nu știu ce motiv, nu merge.

Aici funcționează. Poți fi mai specific despre "nu merge"? Primești vreo eroare HTTP? Nu poți obține variabila de interogare propref
? Altă problemă?

Un vardump() al array-ului arată că este gol viz:
array(2) { ["propref"]=> string(0) "" ["brand"]=> string(2) "ZZ" }

Cred că problema este că nu o apelez corect, folosesc $values['propref'] = get_query_var( "propref" );

WordPress ar trebui să scrie regula în .htaccess? Nu sunt alte reguli în afară de cele implicite. Sunt sigur că rescrierea este corectă, pare că Apache nu o implementează.

.htaccess nu este implicat în asta. Am testat din nou și funcționează.

Ce este cottage-details
? o pagină sau un articol? Care este ID-ul său?

Dacă este o pagină, regula de rescriere trebuie să folosească page_id
în loc de p
. Vezi documentația WP Query. Am editat răspunsul.

Excelent. page_id
sau pagename
vor funcționa, ideea este că trebuie să interoghezi o pagină, nu un articol obișnuit. Dacă acest răspuns ți-a rezolvat problema, te rog să îl marchezi ca acceptat.
