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

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

Sponsored Link


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

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

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

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

    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>',
    ) );

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

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

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

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

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

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

使用用途

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

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

Sponsored Link