我正在尝试将多个查询放在一个短代码中,以便可以在页面中调用它们,而不是使用自定义模板。我开始了我的查询,但我只看到了页面上的一些内容。显示图像,显示文本,但没有显示任何html标记。是否有一个Wordpress函数,我需要将其全部传递,以便它不会剥离HTML?
function band_query($atts) { ?>
<ul>
<?php
extract(shortcode_atts(array(
"category" => \'\',
"number" => \'\'
), $atts));
$band = new WP_Query( array(
\'category_name\' => $category,
\'posts_per_page\' => $number
));
$output = \'\';
// The Loop
if( $band->have_posts()):
$output .= \'<div id="band_bio">\';
$output .= \'<ul>\';
while ( $band->have_posts() ) : $band->the_post();
$output .= \'<li>\';
$output .= \'<figure>\' . the_post_thumbnail(\'band\', array(\'class\' => \'left marg_right1\')) .\' </figure>\';
if ( has_excerpt()){
$output .= the_excerpt();
} else {
$output .= the_content();
}
$output .= \'<div class="relative"><a href=\' .the_permalink() . \'class="button1"> <span></span><strong>Read More</strong></a></div>\';
$output .= \'</li>\';
endwhile;
endif;
wp_reset_postdata();
$output .= \'</ul>\';
$output .= \'
</div>
<a href="#" class="prev"></a>
<a href="#" class="next"></a>
$output = apply_filters(\'the_content\', $content);
return $output;
}
add_shortcode("band_page", "band_query");
最合适的回答,由SO网友:birgire 整理而成
当您构建$output
变量,您需要考虑
get_the_post_thumbnail()
get_the_excerpt()
get_the_content()
get_permalink()
返回值,而不是
the_post_thumbnail()
the_excerpt()
the_content()
the_permalink()
这将回声这些值。