サポート » 使い方全般 » ショートコードで記事一覧の中にタグも表示させたい。

  • 解決済 suca06

    (@suca06)


    function news_post_list() { 
      global $post; 
      $args = array( 
      	'posts_per_page' => 2, 
      );
      $posts_array = get_posts($args); 
      $html = '<ul>';
      foreach($posts_array as $post): 
        setup_postdata($post); // 投稿のセットアップ
        $html .= '<li>'.get_the_date().'<div>'.the_tags('<ul><li>','</li><li>','</li></ul>').'</div>';
        $html .= '<a href="'.get_permalink().'">'.get_the_title().'</a><li>'; 	
        $html .= '<li>'; 	
      endforeach; 
      $html.='</ul>';
      wp_reset_postdata(); 
      return $html;
    }
    add_shortcode('post_list', 'news_post_list');

    HTMLでこのように表示させたいと思っています。
    <ul>
    <li>日付、タグ1、タグ2、タイトル</li>
    <li>日付、タグ3、タグ4、タイトル2</li>
    </ul>

    しかし、タグが<ul>の外に表示されます。↓こんな感じです。
    <ul>
    <li>タグ1</li><li>タグ2</li>
    </ul>
    <ul>
    <li>タグ3</li><li>タグ4</li>

    </ul>
    <ul>
    <li>日付、タイトル</li>
    <li>日付、タイトル2</li>
    </ul>

    どのようにしたらその記事に指定されたタグが表示できますでしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    the_tags() は文字列を返さないでエコーします。
    取得したい場合は、get_the_tag_list() や get_the_tags() などを使用するといいかと思います。

    例:

    $html .= '<li>' . get_the_date() . ( is_wp_error( $list = get_the_tag_list( '、', '、', '' ) ) ? '' : $list ) . '、';
    $html .= '<a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
    トピック投稿者 suca06

    (@suca06)

    いつもありがとうございます!無事できました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「ショートコードで記事一覧の中にタグも表示させたい。」には新たに返信することはできません。