web関連

【wordpress】サブループを関数にして使いまわす

2019/11/30

2019/12/13

【wordpress】サブループを関数にして使いまわす

同じサブループの処理を何回も書くのあれだよなぁーって思った時の備忘録
 

参考記事

24:共通処理を関数化:サブループ

ほぼ参考記事の通りなんだけど、備忘録がてら書いておく

 

サブループを関数にして使いまわす方法

出力用コード

<?php
$args = array(
  'post_type' => 'post',
  'posts_per_page' => 3,
);
echo getSubloop($args, 'テキストが入る'); ?>

functions.phpに書く用コード

function getSubloop($search, $title) {
  $the_query = new WP_Query($search);
  $code = '';
  if($the_query->have_posts()) {
    $code .= '<div class="inner">'.PHP_EOL;
    $code .= '<h1>'.$title.'</h1>'.PHP_EOL;
    while($the_query->have_posts()) {
      $the_query->the_post();
      $code .= '<a class="link" href="'.get_the_permalink().'">'.PHP_EOL;
      $code .= '<h2 class="title">'.get_the_title().'</h2>'.PHP_EOL;
      $code .= '<div class="text">'.get_the_content().'</div>'.PHP_EOL;
      $code .= '</a>'.PHP_EOL;
    }
    $code .= '</div><!-- /.inner -->'.PHP_EOL;
  }
  wp_reset_postdata();
  return $code;
}

参考記事から自分がわかりやすいように削った

PHP_EOLは改行コードみたい
ただ、htmlの
みたいにhtmlを改行するためのものではないみたい
あくまでコンソール上での改行するもののよう

 

あまりサブループを使いまわすような事ないけどこういう書き方もあるんだということでメモ