MENU

WordPressのウィジェットをランダムに出す方法

WordPressのウィジェットをランダムに出す方法です。

カスタマイズしたのをメモがてら…

目次

functions.phpにウィジェットを登録する

ランダムで表示したいウィジェットを登録する。
idを●●●の箇所を全て共通化させる。
語尾にNoをつける。

※分かりやすくNoを使ったけれど、No部分は後で配列化すれば良いので適当につけても良い。

[php] register_sidebar( array(
‘name’ => __( ‘ウィジェット表示名1’, ‘テーマ名’ ),
‘id’ => ‘●●●1’,
‘before_widget’ => ‘<aside>’,
‘after_widget’ => ‘</aside>’,
‘before_title’ => ‘<h3>’,
‘after_title’ => ‘</h3>’,
) );
register_sidebar( array(
‘name’ => __( ‘ウィジェット表示名2’, ‘テーマ名’ ),
‘id’ => ‘●●●2’,
‘before_widget’ => ‘<aside>’,
‘after_widget’ => ‘</aside>’,
‘before_title’ => ‘<h3>’,
‘after_title’ => ‘</h3>’,
) );
register_sidebar( array(
‘name’ => __( ‘ウィジェット表示名3’, ‘テーマ名’ ),
‘id’ => ‘●●●3’,
‘before_widget’ => ‘<aside>’,
‘after_widget’ => ‘</aside>’,
‘before_title’ => ‘<h3>’,
‘after_title’ => ‘</h3>’,
) );
[/php]

表示したい箇所にソースを書く

No部分を配列化し、ランダムで表示する変数を作る。

dynamic_sidebarの●●●の箇所に、
functions.phpでウィジェット登録部分で書いたidの共通部分を記載し、
後ろにランダムで表示する変数を付けるだけ。

[php] $random = array("1","2","3");
$count = count($random); //配列をカウント
$random2 = rand(0,$count -1);

<?php if ( ! dynamic_sidebar( ‘●●●’ . $random[$random2]) ) :
endif; ?>[/php]

コンテンツ直下にウィジェットを追加するために、
add_filter('the_content','');を使って書いたが、
dynamic_sidebarでも動作します(;´∀`)

使用用途

スマホだと表示すると長くなってしまうコンテンツを、
ランダムで表示することで避けるため。

後にタブ表示でもいいなと思いついた……

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

WordPress Love! 休日はほぼWordPress仲間と一緒に勉強会や写真を撮りに行っています。現在育児中のため、オフが多いです(>△<<<)

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次