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?
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);
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