在Wordpress Shortcode中返回一个函数

时间:2013-07-07 10:52:35

标签: php wordpress function

最近我一直在使用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 
}

1 个答案:

答案 0 :(得分:0)

如果您未指定return语句,则会返回null。请参阅this question

如果符合您的目标,您的短代码将显示 nothing ,则可以省略return语句。

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

修改

现在我理解什么都不返回是什么意思。实际上,您在快捷方式功能中内联 HTML。

实际上,我仍然希望收集并返回所有内容作为字符串,因为它可以让您更好地控制处理内容。如果某个条件稍后发生,您仍可能决定返回其他内容。它也可能“打扰”WP,因为内联将立即输出内容 ,同时返回启用内容的WP以决定它何时(以及在何处)显示。