在Wordpress短代码中返回一个函数


Return a Function in Wordpress Shortcode

最近我一直在玩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以决定何时(何地)显示。