Come visualizzare i tag dei post

30 giu 2014, 23:06:25
Visualizzazioni: 41.6K
Voti: 2

Sto convertendo un template HTML in un tema WordPress e sto avendo alcune difficoltà nel visualizzare i tag dei post all'interno del file functions.php. Vorrei aggiungere il seguente codice nel file functions con il codice HTML. Ho provato per alcuni giorni e ho già consultato il codex ma niente di quello che provo funziona.

<div class="tags">
<a href="#" rel="tag">tag 1</a> <a href="#" rel="tag">tag 2</a> <a href="#" rel="tag">tag 3</a> <a href="#" rel="tag">tag 4</a>
</div>

Qualcuno può aiutarmi con questo?

3
Commenti

Spiacente, ma non stai fornendo abbastanza informazioni per dare una risposta chiara. Il file functions.php dovrebbe includere funzioni helper personalizzate del tema e nessun output HTML diretto. Dove esattamente vuoi che avvenga l'output? Vuoi visualizzare un elenco dei tag assegnati nella visualizzazione di un singolo post?

s1lv3r s1lv3r
30 giu 2014 23:15:04

Scusa, sì, voglio che l'output appaia nel singolo post. I tag che assegni a ciascun post.

user1181153 user1181153
30 giu 2014 23:21:31

Tramite il file functions? O tramite qualsiasi file?

Brad Dalton Brad Dalton
7 ago 2014 16:07:25
Tutte le risposte alla domanda 6
2

Penso tu stia cercando la funzione get_tags(). Dovrai inserirla nel file single-post.php (o single.php se il tuo tema non ha un single-post.php) (per trovare il template file corretto puoi sempre consultare la Gerarchia dei Template di Wordpress).

Per visualizzare un elenco di tag con la funzione linkata sopra, dovrai usare qualcosa come:

<?php $tags = get_tags(); ?>
<div class="tags">
<?php foreach ( $tags as $tag ) { ?>
    <a href="<?php echo get_tag_link( $tag->term_id ); ?> " rel="tag"><?php echo $tag->name; ?></a>
<?php } ?>
</div>
30 giu 2014 23:33:26
Commenti

Felice di aiutare. Per favore accetta la risposta se pensi sia stata utile. Buona serata. :-)

s1lv3r s1lv3r
30 giu 2014 23:54:29

Non funziona dal file functions.

Brad Dalton Brad Dalton
7 ago 2014 16:11:13
0

Ecco un modo per aggiungere i tag degli articoli dopo il contenuto solo nei singoli post utilizzando il filtro the_content in una funzione personalizzata nel tuo file functions.php. Utilizza the_tags

function tags_after_single_post_content($content) {

if( is_singular('post') && is_main_query() ) {

$tags = the_tags('<div class="entry-meta">Contrassegnato con: ',' • ','</div><br />'); 

$content .= $content . $tags;
    }
return $content;
}
add_filter( 'the_content', 'tags_after_single_post_content' );

Risultato:

Risultato dei tag visualizzati dopo il contenuto dell'articolo

7 ago 2014 16:06:05
1

Codice corretto:

function tags_after_single_post_content($content) {
  $posttags = get_the_tags();
  if ($posttags) {
    $array = [];
    foreach($posttags as $tag) {
      $array[] = '<a href="/tag/' . $tag->slug . '/">' . $tag->name . '</a>';
    }
    $content .= 'Tag: ' . implode(', ', $array) . '<br>';
  }

  return $content;
}
add_filter( 'the_content', 'tags_after_single_post_content' );

Il motivo per cui questa risposta è sbagliata è perché the_tags dovrebbe essere utilizzato all'interno di The Loop e the_tags non restituisce nulla, quindi il resto del codice non fa nulla. In questa risposta, get_the_tags restituisce un array di istanze di tag che possiamo quindi aggiungere al contenuto.

15 lug 2016 05:50:24
Commenti

Ciao, benvenuto su WPSE. Potresti per favore modificare il tuo post per spiegare perché questo è il codice corretto? Le risposte contenenti solo codice sono scoraggiate qui poiché non insegnano nulla. Grazie!

Tim Malone Tim Malone
15 lug 2016 07:50:24
1

Mostra un elenco di tag con link a ciascuno e una classe specifica per ogni tag:

$tags = get_tags();
$html = '<div class="post_tags">';
    foreach ( $tags as $tag ) {
       $tag_link = get_tag_link( $tag->term_id );

       $html .= "<a href='{$tag_link}' title='Tag {$tag->name}' class='{$tag->slug}'>";
       $html .= "{$tag->name}</a>";
    }
$html .= '</div>';
echo $html;
7 ago 2014 15:34:23
Commenti

Per favore, inserisci il link alla fonte del tuo codice.

Brad Dalton Brad Dalton
7 ago 2014 16:10:42
2

Devi utilizzare questo codice alla fine del file functions.php:

function tags_after_single_post_content($content) {
  $posttags = get_the_tags();
  if ($posttags) {
    $array = [];
    foreach($posttags as $tag) {
      $array[] = '<a href="/tag/' . $tag->slug . '/">' . $tag->name . '</a>';
    }
    $content .= 'Tag: ' . implode(', ', $array) . '<br>';
  }

  return $content;
}
add_filter( 'the_content', 'tags_after_single_post_content' );
15 feb 2022 14:20:48
Commenti

Sembra che tu abbia semplicemente copiato la risposta di Artem. Hai cambiato qualcosa?

Rup Rup
15 feb 2022 14:52:35

Così com'è scritta, la tua risposta non è chiara. Per favore, [modificala] per aggiungere dettagli che aiutino gli altri a capire come risponde alla domanda posta. Puoi trovare maggiori informazioni su come scrivere buone risposte nel centro assistenza.

User User
19 feb 2022 23:09:47
1

ho creato questo codice da arterm con piccole modifiche

function tags_after_single_post_content($content) {
$posttags = get_tags();
if ($posttags) {
$array = [];
foreach($posttags as $tag) {
$array[] = '<a href="/tag/' . $tag->slug . '/">' . $tag->name . '</a>';
}
$content .= '<div class="wulanhastag">Tag: ' . implode(', ', $array) . '</div>';
}
return $content;
}
add_filter( 'the_content', 'tags_after_single_post_content' );
15 apr 2024 21:58:05
Commenti

Quindi il cambiamento significativo è che hai sostituito get_the_tags() con get_tags()?

Rup Rup
16 apr 2024 11:20:06