2016-05-10 16 views
2

Ich erstelle Infobook-Box, wo Kategorie als Herausgeber und Tags als Genre. Dies ist mein Code:Wie werden die Tags angezeigt?

<table> 
<?php 
    $my_publisher = get_the_category(); 
    $my_genre = get_the_tags(); 

if(! empty($my_publisher[0])) { 
     echo '<tr><td align="right" class="infobook"><b>Publisher</td><td align="center" class="infobook">:</td></b><td class="infobook"> <a href="'.get_category_link($my_publisher[0]->term_id).'">'.$my_publisher[0]->cat_name.'</a></td></tr>'; 
      } 

if(! empty($my_genre)) { 
     echo '<tr><td align="right" class="infobook"><b>Genre</td><td align="center" class="infobook">:</td></b><td class="infobook"> ' .$my_genre. ' </td></tr>'; 
      } 
?> 
</table> 

Kategorie als Verleger ist Arbeit, aber Tags als Genre nicht funktioniert (nicht zeigen). Was soll ich tun, um den Code zu reparieren?

+0

Ich benutze diesen Code für die Kategorie als Herausgeber: term_id).'">'.$category[0]->cat_name.''; } ? (Quelle: https: //dbarnwal.wordpress.com/2014/07/23/display-category-name-in-post-page/). Aber ich habe keine andere Möglichkeit gefunden, die Tags anzuzeigen. –

+0

Ich schaute auf die [Dokumentation] (https://codex.wordpress.org/Function_Reference/get_the_tags) und es sieht aus wie es ein Array von Objekten zurückgibt, so dass Sie es nicht einfach so Echo. Sehen Sie sich die Dokumentation im Link an und sehen Sie, wie sie 'foreach' verwenden und den Namen für jedes Tag erhalten. –

Antwort

1

get_the_tags() gibt ein Array von Objekten zurück. Jedes Objekt hat eine "name" -Eigenschaft. Wenn Sie alle dem Post zugewiesenen Tags anzeigen möchten, müssen Sie sie durchlaufen und die name-Eigenschaft jedes Tags wiedergeben. Wenn Sie für jedes Tag eine Verknüpfung anzeigen möchten, müssen Sie die Funktion get_tag_link() verwenden und das Tag-Objekt übergeben, um die Verknüpfung zu erhalten.

Ich habe den Code geändert; Sie können es unten sehen. Ich verwende ein Array, um die Links zu speichern, und dann implodiere ich es mit Komma als Trennzeichen.

<table> 
<?php 
$my_publisher = get_the_category(); 
$my_genre = get_the_tags(); 

if(! empty($my_publisher[0])) { 
    echo '<tr><td align="right" class="infobook"><b>Publisher</td><td align="center" class="infobook">:</td></b><td class="infobook"> <a href="'.get_category_link($my_publisher[0]->term_id).'">'.$my_publisher[0]->cat_name.'</a></td></tr>'; 
} 

if(! empty($my_genre)) { 
    $tag_links = array(); 
    foreach($my_genre as $tag) { 
     $tag_links[] = '<a href="'.get_tag_link($tag).'">'.$tag->name.'</a>'; 
    } 
    echo '<tr><td align="right" class="infobook"><b>Genre</td><td align="center" class="infobook">:</td></b><td class="infobook"> ' . implode(',', $tag_links) . ' </td></tr>'; 
} 
?> 
</table> 
+0

Danke Mr.Andrew. Aber immer noch nicht funktioniert. Ich versuche, Ihren Code zu bearbeiten 'wenn (! Leer ($ my_genre)) { $ tag_links = array(); foreach ($ my_genre als $ tag) { } echo 'Genre:'.$tag->name.' '; } '. Es funktioniert, aber nur ein Tag zeigt von 4 vorhandenen Tags. –

+0

@ PUSTAKAKORAN.COM Hoppla! Ich habe einen Fehler in meinem Code gemacht. Ich habe es bearbeitet. Kannst du es jetzt versuchen? –

+0

@ PUSTAKAKORAN.COM nicht bearbeiten, es sollte gut funktionieren. –

Verwandte Themen