Wordpress在循环中输出标签

时间:2013-12-17 12:41:52

标签: php wordpress tags

我正在尝试通过短代码输出与自定义帖子类型相关联的所有标签,并且它似乎只在$ output中引入了1个标签。

<$>在$ output之外,代码没问题。

代码是:

function display_stores() {

    $args = array( 'post_type' => 'stores', 'posts_per_page' => 5 );

    $success = new WP_Query( $args );

        $output = '';

        while( $success->have_posts() ) {

            $success->the_post();

            $tags = get_the_tags($post_ID);

            foreach($tags as $tag) {

                return '<li>'. $tag->name . '</li>' ;


            }

            $output .= sprintf( "<div class='story-content left'>" );
            $output .= sprintf( "<h2>%s</h2>", get_the_title() );
            $output .= sprintf( '%s</div>', get_the_content() );
            $output .= sprintf( "Button");
            $output .= sprintf( "<div class='story-tags right'>" );
            $output .= sprintf( "<h4>Areas</h4><ul class='ul-arrows'>" );
            $output .= sprintf( $tags );
            $output .= sprintf( "</ul></div><hr>" );

        }

            wp_reset_query();

            return $output;

}

add_shortcode( 'display_stores', 'display_stores' );

1 个答案:

答案 0 :(得分:2)

foreach($tags as $tag) {
    return '<li>'. $tag->name . '</li>' ;
}

第一次运行它将退出该函数并返回li。我想你想把它添加到输出中。

$tagHTML = '';
foreach($tags as $tag) {
    $tagHTML .= '<li>'. $tag->name . '</li>' ;
}
//Later
$output .= $tagHTML;