it-swarm-eu.dev

get_query_var () a permalinks

Mám strukturu permalink, která vypadá takto,

% category% /% postname%

Mám šablonu kategorie.php kódovanou nahoru a snaží se vytáhnout příspěvek určité kategorie, takže například adresa URL může vypadat takto,

/ kategorie/kategorie1

Chci vrátit všechny příspěvky, které jsou v kategorii 1, ale při použití následujícího kódu se vrátím null

get_query_var('cat')

Předpokládám, že tento kód hledá adresu URL, která vypadá takto:

? cat = category1

Jak to, aby to fungovalo s permalinky?

1
sico87

WordPress přepíše pravidla neviditelně překládat docela permalinks na non-pěkný formát interně, a nastavit příslušné proměnné a načíst požadovanou stránku, nemusíte dělat nic v šabloně načíst příspěvky z kategorie na stránce kategorie.

Parametr cat query specificky bude nastaven na ID požadované kategorie, nikoli na jméno.

To říká:

$my_category = get_query_var('cat');
echo $my_category;

vytisknout vybrané ID kategorie na stránce kategorie. Pokud tomu tak není, museli bychom vidět váš kód, který vám pomůže dále.

Podívejte se také na $wp_query global, abyste viděli všechny vars dotazů nastavené na konkrétní stránce:

global $wp_query
print_r($wp_query);
5
Milo

To mi pomohlo získat odpověď, problém, který jsem zjistil, byl ten, odkud objekt pochází

global $wp_query

pokud bylo zapnuto permalinks, neobsahoval ID kategorie. Nicméně obsahoval název kategorie, takže pro získání ID kategorie pro mě pracoval následující kód.

$category = get_query_var('category_name');
$categoryid = array(get_cat_ID( $category ));

to je užitečné zejména u pre_get_posts

0
nidal