wake-up-neo.com

get_query_var () und permalinks

Ich habe eine Permalink-Struktur, die so aussieht,

% category% /% postname%

Ich habe eine category.php-Vorlage geschrieben und versuche, den Beitrag einer bestimmten Kategorie abzurufen. So könnte zum Beispiel meine URL aussehen:

/ category/category1

Ich möchte, dass alle Posts in Kategorie 1 zurückgegeben werden. Wenn ich den folgenden Code verwende, wird null zurückgegeben.

get_query_var('cat')

Ich gehe davon aus, dass dieser Code nach einer URL sucht, die so aussieht,

? cat = Kategorie1

Wie mache ich das mit Permalinks?

1
sico87

WordPress schreibt Regeln um und übersetzt hübsche Permalinks unsichtbar in das nicht hübsche Format. Wenn Sie die entsprechenden Variablen festlegen und die angeforderte Seite laden, müssen Sie in Ihrer Vorlage nichts tun, um Beiträge aus einer Kategorie auf einer Kategorieseite zu laden.

Die cat query var wird speziell auf dieIDder angeforderten Kategorie gesetzt, nicht auf den Namen.

Das heißt, dies:

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

soll die ausgewählte Kategorie-ID auf einer Kategorieseite drucken. Wenn dies nicht der Fall ist, müssen wir Ihren Code anzeigen, um Sie weiter zu unterstützen.

Sehen Sie sich auch den $wp_query global an, um alle Abfragevariablen zu sehen, die auf einer bestimmten Seite festgelegt sind:

global $wp_query
print_r($wp_query);
5
Milo

Dies half mir meine Antwort zu bekommen, das Problem, das ich fand, war, dass das Objekt aus

global $wp_query

enthielt keine Kategorie-ID, wenn Permalinks aktiviert waren. Es enthielt jedoch einen Kategorienamen. Um die Kategorie-ID abzurufen, hat der folgende Code für mich funktioniert.

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

dies ist besonders nützlich bei pre_get_posts

0
nidal