WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] Echo the current queried tag only (3 posts)

  1. trmash
    Member
    Posted 1 year ago #

    Hello,

    I've searched the forums and Googled, but haven't had any luck finding a solution to my how-to question. It could be that I'm going about it all wrong, so I'm open to 'best practice' solutions too.

    Apologies for the long post, I just wanted to explain it as thoroughly as possible. The site is in development locally, so unfortunately I'm unable to provide a link.

    I have a page template which uses multiple queries to display one post per a selection of tags.

    For example:

    $thistag = new WP_Query('tag=this-tag&showposts=1'); if ($thistag->have_posts()): while ($thistag->have_posts() ) : $thistag->the_post();  get_template_part( 'specialtags-loop' ); endwhile; endif; wp_reset_query(); 
    
    $thattag = new WP_Query('tag=that-tag&showposts=1');
    if ($thattag->have_posts()): while ($thattag->have_posts() ) : $thattag->the_post(); get_template_part( 'specialtags-loop' ); endwhile; endif; wp_reset_query();
    
    $anothertag = new WP_Query('tag=another-tag&showposts=1');
    if ($anothertag->have_posts()): while ($anothertag->have_posts() ) : $anothertag->the_post(); get_template_part( 'specialtags-loop' ); endwhile; endif; wp_reset_query();

    My loop is just a standard WordPress loop, and correctly displays a list of posts comprising one of each of the requested tags:

    Post Title
    Post Excerpt

    Post Title
    Excerpt

    Post Title
    Excerpt

    What I want to do (if it's possible) is display the 'nice name' of each queried tag, without having to resort to hard-coding each tag name individually - just to differentiate between the posts. Most of my posts have multiple tags, which is why I'm trying to get it to display the queried tag only.

    What I'd like is for the page to show something like:

    This Tag
    Post Title
    Excerpt
    Read more from This Tag

    That Tag
    Post Title
    Excerpt
    Read more from That Tag

    Another Tag
    Post Title
    Excerpt
    Read more from Another Tag

    Hopefully this makes some sense, and hopefully you can help. Much appreciated.

  2. alchymyth
    The Sweeper & Moderator
    Posted 1 year ago #

    without having to resort to hard-coding each tag name individually

    you are already 'hard-coding' the tag slug in the query;

    try (example code for the first of your queries):

    $thistag = new WP_Query('tag=this-tag&posts_per_page=1');
    if ($thistag->have_posts()):
      $tag = get_term_by( 'slug', $thistag->query_vars['tag'], 'post_tag' );
      echo $tag->name;
    while ($thistag->have_posts() ) : $thistag->the_post();
    get_template_part( 'specialtags-loop' );
    endwhile;
      echo 'Read more from <a href="' . get_term_link($tag, 'post_tag') . '">' . $tag->name . '</a>';
    endif;
    wp_reset_postdata();

    http://codex.wordpress.org/Function_Reference/get_term_by
    http://codex.wordpress.org/Function_Reference/get_term_link

  3. trmash
    Member
    Posted 1 year ago #

    Thanks alchymyth, that's exactly what I needed.

    I get what you mean about hard-coding the tag slug, what I was getting at was that I didn't want to have to hard-code the link to each tag page.

    In any case, thanks for having a look at this for me and helping me out. It's very much appreciated.

Topic Closed

This topic has been closed to new replies.

About this Topic