我正在尝试创建一个显示最新帖子的短代码。我使用以下代码作为短代码
function my_recent_posts_shortcode( $atts ) {
extract( shortcode_atts( array(
'limit' => 5
), $atts,'recent-posts' ) );
$q = new WP_Query(
array('posts_per_page'=>'.$limit.','post_type'=>'post')
);
$list = '';
while($q->have_posts()):$q->the_post();
$list .= '<div class="post">
<img class="img_border img_border_b img_fl" src="'.get_template_directory_uri().'/images/blog/01.jpg" alt="Post Image 1" />
<div class="post_content">
<h2><a href="'.get_permalink().'">'.get_the_title().'</a></h2>
'.the_content().'
<a class="more" href="fullpost.html">More</a>
</div>
<div class="clear"></div>
</div>';
endwhile;
wp_reset_query();
return $list;
}
add_shortcode( 'recent-posts', 'my_recent_posts_shortcode' );
之后我创建了一个页面并为此选择了默认页面模板?这是我的page.php模板循环
<div id="templatemo_content" class="left">
<?php if(have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?Php the_content();?>
<?php endwhile; ?>
<?php endif; ?>
</div>
以下是我的短代码
[recent-posts limit="3"]
但是当我看到结果时,它会显示一个'pre'标签。
请告诉我解决方案。
答案 0 :(得分:5)
检查相关页面的编辑模式,其中包含您的短代码。 如果您使用的是一个所见即所得的编辑器,那么您就是在&#34; Visual&#34;模式您的短代码可能有PRE包装器。检查&#34;文字&#34;模式。
<pre>[Blah_shortcode]</pre>
答案 1 :(得分:1)
the_content()正在输出您的内容,请将其替换为apply_filters('the_content',get_the_content())
在你的recent_posts短代码功能中,更换后它将起作用!!
此致