関数the_terms()の出力位置が希望通りにならない
-
functions.phpにカスタム投稿のリストを出力させるショートコードを作成しました。
function shortcode_post_list($atts) { extract(shortcode_atts(array( // パラメータ (引数の指定がなければ指定の値が格納される) 'num' => '-1', 'post_type' => 'post', ), $atts)); global $post; $args = array( 'posts_per_page' => $num, 'post_type' => $post_type, 'order' => 'DESC', 'post_status' => 'publish' ); $posts_array = get_posts($args); $html = '<ul class="news_list_box flex_container">'; foreach($posts_array as $post): setup_postdata($post); $html .= '<li class="box">'; $html .= '<a href="'.get_permalink().'">'; if (has_post_thumbnail()) : $html .= '<div class="back_img box_5x3" style="background-image: url('.wp_get_attachment_url( get_post_thumbnail_id() ).')"></div>'; else : $html .= '<div class="back_img box_5x3" style="background-image: url('.get_theme_file_uri().'/img/eyecatch_default.jpg)"></div>'; endif; $html .= '</a>'; $html .= '<p>'; $html .= '<span class="date">'.get_the_date().'</span>'; $html .= '<span class="category">'.the_terms(get_the_ID(),'news_cat').'</span>'; $html .= '</p>'; $html .= '<h3><a href="'.get_permalink().'">'.get_the_title().'</a></h3>'; $html .= '</li>'; endforeach; $html.='</ul>'; wp_reset_postdata(); return $html; } add_shortcode('post_list', 'shortcode_post_list');
これを、プラグイン「Elementor」のショートコードウィジェットで出力したところ、
以下のように、the_terms()の出力位置が- タグ外になってしまいます。
[出力結果]
<div class="elementor-widget-container"> ※タームがこの位置に出力されてしまう <a href="https://www.research.oit.ac.jp/crssc/news_cat/news-cat-1/" rel="tag">ニュースカテゴリ1</a><a href="https://www.research.oit.ac.jp/crssc/news_cat/news-cat-2/" rel="tag">ニュースカテゴリ2</a> <div class="elementor-shortcode"> <ul class="news_list_box flex_container"> <li class="box"><a href="https://www.research.oit.ac.jp/crssc/news/news-5465/"> <div class="back_img box_5x3" style="background-image: url(https://www.research.oit.ac.jp/crssc/wp-content/uploads/2020/12/news_dammy_06.jpg)"></div> </a> <p><span class="date">2021年1月8日</span><span class="category"></span></p> <h3><a href="https://www.research.oit.ac.jp/crssc/news/news-5465/">ニュースサンプル14</a></h3> </li> <li class="box"><a href="https://www.research.oit.ac.jp/crssc/news/news-5464/"> <div class="back_img box_5x3" style="background-image: url(https://www.research.oit.ac.jp/crssc/wp-content/uploads/2020/12/news_dammy_05.jpg)"></div> </a> <p><span class="date">2021年1月8日</span><span class="category"></span></p> <h3><a href="https://www.research.oit.ac.jp/crssc/news/news-5464/">ニュースサンプル13</a></h3> </li> </ul> </div> </div>
テンプレートタグに直接ショートコードを書き込んでも同様の出力結果になります。
<?php echo do_shortcode('[post_list post_type = "news" num = "2" ]'); ?>
[出力結果]
<a href="https://www.research.oit.ac.jp/crssc/news_cat/news-cat-1/" rel="tag">ニュースカテゴリ1</a>><a href="https://www.research.oit.ac.jp/crssc/news_cat/news-cat-2/" rel="tag">ニュースカテゴリ2</a> <ul class="news_list_box flex_container"> <li class="box"><a href="https://www.research.oit.ac.jp/crssc/news/news-5465/"> <div class="back_img box_5x3" style="background-image: url(https://www.research.oit.ac.jp/crssc/wp-content/uploads/2020/12/news_dammy_06.jpg)"></div> </a> <p><span class="date">2021年1月8日</span><span class="category"></span></p> <h3><a href="https://www.research.oit.ac.jp/crssc/news/news-5465/">ニュースサンプル14</a></h3> </li> <li class="box"><a href="https://www.research.oit.ac.jp/crssc/news/news-5464/"> <div class="back_img box_5x3" style="background-image: url(https://www.research.oit.ac.jp/crssc/wp-content/uploads/2020/12/news_dammy_05.jpg)"></div> </a> <p><span class="date">2021年1月8日</span><span class="category"></span></p> <h3><a href="https://www.research.oit.ac.jp/crssc/news/news-5464/">ニュースサンプル13</a></h3> </li> </ul>
原因は何でしょうか?
お詳しい方、ご教授いただけますと幸いです。
宜しくお願い致します。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「関数the_terms()の出力位置が希望通りにならない」には新たに返信することはできません。