Link zur benutzerdefinierten Taxonomie nach ID

Lesezeit: 3 Minuten

Aufgrund einer Reihe spezifischer Anforderungen muss ich eine Verknüpfung zu einer benutzerdefinierten Taxonomiekategorie mithilfe ihrer Begriffs-ID herstellen …

Ich habe dies – das einen Link zu allen Taxonomien anzeigt – ich möchte es so ändern, dass nur ein Link zur Taxonomie angezeigt wird, wobei die Begriffs-ID 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>';
 }
};

Im Wesentlichen brauche ich “link_to_taxonomy_category(x)”, wobei x = term_id

Vielen Dank

Die gesuchte Funktion ist get_term_link. Es nimmt entweder ein Begriffsobjekt, eine ID oder einen Slug und einen Taxonomienamen und gibt eine URL zur Zielseite des Begriffs zurück.

Als Randbemerkung ist festzuhalten, dass der Link, wie Sie ihn im obigen Beispiel haben, zerbrechlich ist – halten Sie Ihren Code immer so portabel wie möglich. Wenn die Website in eine andere Domain verschoben wird, wird dieser Link unterbrochen. WordPress verfügt über mehrere Funktionen, die Links basierend auf der aktuellen Installationsumgebung dynamisch generieren. get_term_link ist ein Beispiel.

Von dem Kodex:

$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>';

  • Hallo, danke – ich habe das tatsächlich versucht, konnte es aber nicht zum Laufen bringen, ich werde es jetzt noch einmal versuchen. Hardcode ist nur zur Verdeutlichung in der Frage enthalten …

    – Jorge Luis Borges

    11. April 2012 um 13:06 Uhr


  • ja – kann nicht wirklich herausfinden, wie man das benutzt – versucht $terms = get_terms('event-categories'); echo '<ul>'; foreach ($terms as $term) { echo '<li><a href="'.get_term_link($term->slug, '20').'">'.$term->name.'</a></li>'; } echo '</ul>'; und bekam den folgenden Fehler “Fangbarer schwerwiegender Fehler: Objekt der Klasse WP_Error konnte nicht in Zeichenfolge konvertiert werden in …”

    – Jorge Luis Borges

    11. April 2012 um 13:08 Uhr


  • Das zweite Argument für get_term_link sollte der Name der Taxonomie sein (in diesem Fall „Ereigniskategorien“). Es gibt ein Objekt der Klasse WP_Error zurück, wenn der Begriff oder die Taxonomie nicht existiert. Sie können den Wert der Fehlermeldung abfangen, indem Sie ihn in einer Variablen (z. B. $term_link) speichern und ihn vor dem Echo untersuchen: if ( is_wp_error($term_link) ) echo $term_link->get_error_message();

    – gradyetc

    11. April 2012 um 13:36 Uhr


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

    – gradyetc

    11. April 2012 um 14:25 Uhr

  • Dann überschreite die Begriffe nicht. Wenn Sie eine Term-ID haben, brauchen Sie nur: get_term_link( $term_id, 'event-categories' );. Dadurch wird die URL für den bestimmten Begriff zurückgegeben, nach dem Sie in der Taxonomie „Ereigniskategorien“ suchen.

    – gradyetc

    11. April 2012 um 21:33 Uhr

Wenn Sie Single haben term_id z.B: 10benutzerdefinierte Taxonomie series dann können Sie den folgenden Code verwenden, um den Link zum Taxonomiebegriff abzurufen.

Hinweis: Ändern Sie 10 in Ihre Variable für term_id und ‘series’ in Ihre Taxonomie.

$term = get_term( 10, 'series' );
$term_link = get_term_link( $term );
echo '<a href="' . $term_link . '">View All</a>';

  • Dies zeigt nur die Standardkategorie und keine benutzerdefinierte Taxonomie.

    – IT-Vlogs

    4. September 2016 um 7:55 Uhr

  • Übergeben Sie im zweiten Parameter von get_term() den Taxonomienamen.

    – Aamer Shahzad

    4. September 2016 um 11:37 Uhr

1364710cookie-checkLink zur benutzerdefinierten Taxonomie nach ID

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy