福岡 ワードプレス システム開発 株式会社ジーティーアイ のブログ

賢威8 で記事をランダムに表示するショートコード

賢威8 で記事をランダムに表示するショートコード

賢威8 で本文内に記事一覧を入れるためのショートコード

ランダムに表示します。

[random_posts] で一覧表示します。

[random_posts limit=3] 件数制限も出来ます。

賢威のレイアウトスタイルも変更できます。

style=”01″ か style=”02″ で指定。(無指定は “01”)

目次[閉じる]

サンプルその1

[random_posts style="02" limit=3] で表示したもの

もともと賢威8のカード型はPCで見ると横3件並びなので3件指定すると1段っていう感じになります。

サンプルその2

デフォルトスタイルで件数未指定で3件表示

[random_posts limit=3]

ソースはこちら

今回のコードは「ランダムに記事一覧表示」で検索したこちらの記事を参考にしました。ありがとうございました!

https://fastcoding.jp/blog/all/system/wordpress-random/
参考にさせていただきました!ありがとうございました!

記事の件数など、処理に違いがありますのでこちらも参考にされてください。

賢威8のレイアウトを使ったコードはこちらになります。

※こちらがそのまま利用できるのは賢威8になります。

template-parts に content-archive.php が入っていればそちらのとおりに1記事を表示するようになっています。

コードはこちら

賢威8では子テーマを利用し、子テーマの functions.php に記載してください。


function random_posts( $atts = array() ){
  $limit = ! empty( $atts['limit'] ) ? $atts['limit'] : 10;
  $style = ! empty( $atts['style'] ) ? $atts['style'] : '01';
  $style = str_pad( $style, 2, '0', STR_PAD_LEFT );
  $layout_style = "entry-list_style" . $style;
  $args = array(
  'post_type' => 'post',
  'post_status' => 'publish',
  'orderby'   => 'rand', // 記事のランダム表示設定
  'posts_per_page'    => $limit,
  );
  $posts_query = new WP_Query( $args ); 

  ob_start();
  if ($posts_query->have_posts()) {
  ?>
  <div class="keni-section_wrap keni-section_wrap_style02">
    <div class="keni-section">
      <div class="entry-list <?php echo $layout_style; ?>"><?php 
      // entry-list_style01 → デフォルト
      // entry-list_style02 → カード

while ($posts_query->have_posts()) {
  $posts_query->the_post(); 
?><div class="entry-list_item"><?php 
  get_template_part( 'template-parts/content', 'archive' );
?></div><?php 
}
?>
      </div>
    </div>
  </div>
  <?php 
  } ?>
  <?php 
return ob_get_clean();
}
add_shortcode('random_posts','random_posts');

さいごにもう一度。件数未指定で10件表示されます。

[random_posts style="01"]

カリスマ美人○○

カリスマ美人○○って本当に美人なんだろか? 取り上げた人の個…

もっと多機能にしても良さそうですね。

賢威 のカスタマイズについて、ご依頼はこちら

株式会社ジーティーアイ お問い合わせ

プラグイン開発 も行っています。

WordPressカスタマイズ、API連携 ~ システム開発、保守 お気軽にご相談ください。

この記事をシェアする

記事一覧へ戻る

関連記事 Relation Entry

IP あなたが接続中のIPアドレス:216.73.216.31