Enlace directamente a la primera publicación en un archivo

2

En mi sitio de WordPress, estoy desarrollando una lista de glosario de términos de escritura nuevos, usando etiquetas y descripciones de etiquetas para extraer definiciones. Actualmente, cuando cualquier etiqueta tenga más de 0 publicaciones asociadas, se vinculará a la página de archivo de esa etiqueta, lo que permitirá a los lectores seguir leyendo sobre el tema.

Lo que me gustaría lograr, es tener cualquier etiqueta que tenga exactamente 1 publicación asociada, para vincular directamente a esa publicación en lugar de a la etiqueta de archivo. He estado buscando una solución, pero parece que no puedo encontrar ninguna manera de lograrlo.

Cualquier ayuda sería muy apreciada!

Para referencia, este es el código actual:

<!-- Add glossary list in content -->
<?php foreach ( $groups as $group ): ?>
    <ul>
    <div class="glossary-title-link" id ="section-<?php echo str_replace(' ', '-', strtolower($group['name'])) ?>">
    <h4 id ="<?php echo $group['name'] ?>"><?php echo $group['name'] ?></h4>
    </div>
    <?php foreach ( $group['tags'] as $tag ): ?>
        <li class="glossary-list">

        <!-- If there are any posts for the tag, link to the tag page -->
        <?php

            if ( $tag['count'] > 0 ) {
                echo '<a class="glossary-link" id="term-';
                echo str_replace(' ', '-', strtolower($tag['name']));
                echo '" href="';
                echo $tag['link'];
                echo '">';
                echo $tag['name'];
                echo '</a></br>';


            } else {
                echo '<div class="glossary-link" id="term-';
                echo str_replace(' ', '-', strtolower($tag['name']));
                echo '">';
                echo $tag['name'];
                echo '</div>';

            }
        ?>
        <?php echo $tag['description'] ?></li>

    <?php endforeach; ?>
    </ul>
<?php endforeach; ?>

Lo que lleva a esto, donde los 'cliffhangers' están vinculados y el 'desenlace' no lo está:

    
pregunta Segia 23.07.2018 - 12:12

1 respuesta

4

intente esto (no probado y suponiendo que, por supuesto, $ tag es la etiqueta de objeto correcta y $ tag ['count'] es el número de publicaciones con esa etiqueta):

if ( $tag['count'] > 1 ) {
 //first part of your code
}
else if($tag['count'] == 1){
  $the_query = new WP_Query( 'tag='.$tag['name'] );
  if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {
      $the_query->the_post();
      echo '<a href="';
      echo get_the_permalink();
      echo '">';
      echo $tag['slug'];
      echo '</a></br>';
    }
  }
  wp_reset_query();
}
else{
//// last part of your code
}
    
respondido por el Andrea Somovigo 23.07.2018 - 12:38

Lea otras preguntas en las etiquetas