最近我一直在使用Wordpress Shortcode。当关注this教程(当然改变了一些东西)时,我发现即使没有返回任何内容(返回$ return_string; - part),我的代码仍然按预期工作。
我打开了PHP手册,它说:
如果在函数内调用,则立即返回语句 结束当前函数的执行,并将其参数作为 函数调用的值。 return也将结束执行 一个eval()语句或脚本文件。
我的问题:
因为看起来没有什么破坏,我应该继续做我做的事情,还是应该从我的功能中“返回”某些东西(实际上有一个缺点,就是不要“回归”任何我没见过的东西,还)?
编辑:代码,以防万一..没有“返回”,仍处理短代码/循环
function looping_cat($atts, $content) {
extract(shortcode_atts(array(
"query" => '',
"category" => ''
), $atts));
$wp_query = new WP_Query();
if(!empty($category)){
$query .= '&category_name='.$category;
}
$wp_query->query($query);
?>
<ul>
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<li>
<div>
<?php the_post_thumbnail(); ?>
<h2><?php the_title() ?></h2>
</div>
<?php the_excerpt(); ?>
</div>
</li>
<?php endwhile; wp_reset_query(); ?>
</ul>
<?php
}
答案 0 :(得分:0)
如果您未指定return
语句,则会返回null
。请参阅this question。
如果符合您的目标,您的短代码将显示 nothing ,则可以省略return
语句。
出于可读性目的,我建议在任何地方使用return
语句,即使您要返回null
。
修改强>
现在我理解什么都不返回是什么意思。实际上,您在快捷方式功能中内联 HTML。
实际上,我仍然希望收集并返回所有内容作为字符串,因为它可以让您更好地控制处理内容。如果某个条件稍后发生,您仍可能决定返回其他内容。它也可能“打扰”WP,因为内联将立即输出内容 ,同时返回启用内容的WP以决定它何时(以及在何处)显示。