最近我一直在玩Wordpress Shortcode。在学习本教程时(当然更改了一些内容),我发现即使没有返回任何内容(return$return_string;-part),我的代码仍然可以按预期工作。
我打开PHP手册,上面写着:
如果从函数中调用,return语句将立即结束当前函数的执行,并将其参数返回为函数调用的值。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
}
如果未指定return
语句,则会返回null
。请参阅此问题。
如果您的快捷代码不显示任何符合您的目标,则可以省略return
语句。
为了便于阅读,我建议在任何地方都使用return
语句,即使您返回的是null
。
编辑:
现在我明白了不返回是什么意思了。实际上,您正在内联快捷方式函数中的HTML。
事实上,我仍然更喜欢收集并返回所有内容作为字符串,因为它可以让您更好地控制处理内容。如果以后出现某种情况,您仍然可以决定退货。它也可能"干扰"WP,因为内联将立即输出内容,同时返回启用内容的WP以决定何时(何地)显示。