不echo do_shortcode()
是函数调用。不能将条件语句作为argument of a function. 您需要做的是将查询返回的结果作为函数的参数传入;
//assuming you have taken care of your query prior to this point
if ( have_posts() ) : while ( have_posts() ) : the_post();
$content = get_the_content(); //store content in variable
echo do_shortcode("[table width=\'500\'] ". $content . "[/table]");
endwhile; endif;
注:
在上面的示例中,为了防止您的内容立即被回音,您必须调用get_the_content()
哪一个returns
其价值与the_content()
这立即反映了内容。这就是为什么在没有作为参数传递的不正确的条件语句的情况下运行时,内容会出现在短代码之外。
扩展答案:
根据您的补充意见和扩展问题,检查是否存在一些;“事物”;或者一些;“事物”;满足特定条件时,您将在对短代码的函数调用之外进行测试,方法与我们上面所做的大致相同;
//assuming you have taken care of your query prior to this point
if ( have_posts() ) : while ( have_posts() ) : the_post();
$content = get_the_content(); //store content in variable
$thing = get_post_meta( get_the_ID(), \'thing\', true );
if ($thing === "yes") {
//assuming you want to concatenate your content with an image
$content = $content . \'<br> <img src="path_to_image" />\';
}
echo do_shortcode("[table width=\'500\'] ". $content . "[/table]");
endwhile; endif;