web-dev-qa-db-fra.com

Comment placer des widgets aléatoires dans la barre latérale de Wordpress?

Mes pages ont une barre latérale avec trop de widgets, et cela semble mauvais lorsque le contenu est court et que la barre latérale est trop longue.

Je veux randomiser les widgets que je montre dans la barre latérale. Ce qui signifie que je vais ajouter tous les widgets potentiels à la barre latérale, et il n'en affichera que quelques-uns au hasard.

Je voudrais aussi un peu de contrôle sur ceci, par exemple pour que quelques widgets apparaissent toujours, et que le reste soit aléatoire.

J'ai essayé de trouver des plugins pertinents, mais les seuls que j'ai trouvés ne contenaient que des images ou des messages aléatoires. Jamais différents types de widgets.

2
talkol

Voici la solution de contournement abordée dans les commentaires:

functions.php:

add_action( 'widgets_init', 'talfluxive_register_sidebars' );
function talfluxive_register_sidebars() {
    // register five random widget areas
    register_sidebars( 5, array( 'name' => 'Random Widget Area %d' ) );
    // register two fixed widget areas
    register_sidebars( 2, array( 'name' => 'Fixed Widget Area %d' ) );
}

sidebar.php

dynamic_sidebar( 'Fixed Widget Area 1' );
dynamic_sidebar( 'Random Widget Area ' . Rand( 1, 5 ) );
dynamic_sidebar( 'Fixed Widget Area 2' );

Cet exemple de code est très minime et pourrait être amélioré de nombreuses manières, mais il fonctionne et devrait servir de bon point de départ.

PS: J'aime beaucoup l'idée du widget aléatoire. Je chercherai une meilleure solution quand j'aurai plus de temps. C'est une bonne inspiration de plugin:)

1
Michal Mau

Bien que ne répondant pas complètement à votre question, vous pouvez utiliser le code présenté sur cette page comme point de départ. Il s'agit simplement de randomiser l'ordre, mais avec quelques modifications, vous pourriez faire en sorte que cette fonction fasse exactement ce dont vous avez besoin ...

1
ptriek