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の共通部分を記載し、
後ろにランダムで表示する変数を付けるだけ。
$count = count($random); //配列をカウント
$random2 = rand(0,$count -1);
<?php if ( ! dynamic_sidebar( ‘●●●’ . $random[$random2]) ) :
endif; ?>[/php]
コンテンツ直下にウィジェットを追加するために、
add_filter('the_content','');
を使って書いたが、
dynamic_sidebar
でも動作します(;´∀`)
使用用途
スマホだと表示すると長くなってしまうコンテンツを、
ランダムで表示することで避けるため。
後にタブ表示でもいいなと思いついた……
コメント