2012-04-11 5 views
1

Durch eine Reihe von spezifischen Anforderungen, finde ich mich auf eine benutzerdefinierten Taxonomie Kategorie zu verknüpfen, um ihre Laufzeit-ID mit ...Link, um benutzerdefinierte Taxonomie von id

Ich habe dies bekommt -, die einen Link zu allen zeigen Taxonomien - Ich möchte es so ändern, dass es nur eine Verknüpfung zu der Taxonomie mit der Begriff-ID zeigt, die dynamisch aus einem benutzerdefinierten Feld gezogen wird, das ich verwende.

$taxonomy = 'event-categories'; 
$terms = get_terms($taxonomy); 
if ($terms) { 
foreach($terms as $term) { 
echo '<li><a href="http:/mysite.com/events/categories/project-events/' . $term->slug . '">' . $term->name .'</a></li>'; 
} 
}; 

essentiall I "link_to_taxonomy_category (x)", wobei x = term_id

Dank

Antwort

7

Die Funktion die Sie suchen müssen, ist get_term_link. Es dauert entweder ein Begriff Objekt, ID oder Slug und eine Taxonomie-Name und gibt eine URL zum Begriff Zielseite.

Als eine Randnotiz hart Codierung der Link wie Sie in dem obigen Beispiel sind zerbrechlich - halten Sie immer Ihren Code so tragbar wie möglich. Wenn die Website in eine andere Domäne verschoben wird, wird diese Verknüpfung unterbrochen. WordPress verfügt über mehrere Funktionen, die Links basierend auf der aktuellen Installationsumgebung dynamisch generieren. get_term_link ist ein Beispiel.

Vom Codex:

$terms = get_terms('species'); 
echo '<ul>'; 
foreach ($terms as $term) { 
    echo '<li><a href="'.get_term_link($term->slug, 'species').'">'.$term->name.'</a></li>'; 
} 
echo '</ul>'; 
+0

Hallo, danke - ich habe es tatsächlich versucht, aber konnte es nicht zur Arbeit bringen, ich werde jetzt noch einen gehen. Harter Code ist gerade da für Klarheit in der Frage ... – JorgeLuisBorges

+0

yeah - kann nicht wirklich herausfinden, wie man das verwendet - versuchte '$ terms = get_terms ('event-categories'); echo '

'; 'und bekam den folgenden Fehler" Fataler Catcher-Fehler: Objekt der Klasse WP_Error konnte nicht in String umgewandelt werden in ... " – JorgeLuisBorges

+1

Das zweite Argument für' get_term_link' sollte der Name der Taxonomie sein ('Event-Kategorien' in diesem Fall). Es wird ein Objekt der Klasse WP_Error zurückgegeben, wenn der Begriff oder die Taxonomie nicht existiert. Sie können den Wert der Fehlermeldung abfangen, indem Sie ihn in eine Variable speichern (dh $ term_link) und ihn vor dem Echo untersuchen: 'if (is_wp_error ($ term_link)) echo $ term_link-> get_error_message();' – gradyetc

1

Wenn Sie einzelne term_id z: 10, benutzerdefinierte Taxonomie series dann können Sie den folgenden Code verwenden, um die Taxonomieausdruck Link zu erhalten.

Hinweis: Ändern Sie 10 zu Ihrer Variablen für term_id und 'series' zu Ihrer Taxonomie.

+0

Dies zeigt nur Standard-Kategorie und nicht benutzerdefinierte Taxonomie. –

+0

Geben Sie im zweiten Parameter von get_term() den Namen der Taxonomie an. – talentedaamer

Verwandte Themen