0

最近、ワードプレスのショートコードをいじっています。このチュートリアルに従うと (もちろん、いくつか変更されています)、何も返さなくても (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 をインライン化しています。

実際には、すべてのコンテンツを収集して string として返すことを今でも好みます。これにより、コンテンツの処理をより細かく制御できるからです。後で特定の状態が発生した場合でも、別のものを返すことにする場合があります。また、WP を「乱す」こともあります。これは、インライン化によってコンテンツがすぐに出力されるため、コンテンツを有効にした WP を返していつ (どこに) 表示するかを決定するためです。

于 2013-07-07T10:57:28.460 に答える