0

最近我一直在玩 Wordpress Shortcode。遵循教程(当然,更改了一些内容)时,我发现即使没有返回任何内容(return $return_string; - 部分),我的代码仍然可以按预期工作。

我打开 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 
}
4

1 回答 1

0

如果不指定return语句,null将被退回。看到这个问题

如果它符合您的目标,即不会为您的短代码显示任何内容,则可以省略该return语句。

出于可读性目的,我建议在return任何地方都使用语句,即使您要返回null.

编辑:

现在我明白了什么都不返回是什么意思。实际上,您是在快捷方式函数中内联HTML。

实际上,我还是更喜欢将所有内容作为字符串收集并返回,因为它可以让您更好地控制处理内容。如果稍后发生某种情况,您可能仍会决定退回其他东西。它也可能“干扰” WP,因为内联会立即输出内容,同时返回启用 WP 的内容来决定何时(以及在何处)显示。

于 2013-07-07T10:57:28.460 回答