web-dev-qa-db-fra.com

Afficher tous les albums dans nggallery sur une page

J'utilise le populaire plugin NextGen Gallery/nggallery pour gérer les albums photo et les galeries sur mon site.

Je peux organiser des photos dans un album et l'afficher à l'aide d'un shortcode, ce qui me pose problème. Je souhaite créer une page maîtresse "Galeries de photos" qui affiche tous les albums photo du site.

Des conseils/idées sur la façon de procéder? La seule suggestion vaguement utile que j’ai trouvée en ligne jusqu’à présent est de réorganiser les albums afin que j’ai un album principal qui contient tout le reste comme sous-albums. Cela semble très sous-optimal car chaque galerie/album devra être réarrangé lors du téléchargement.

J'ai trouvé une copie de cette question ailleurs sur le réseau de la pile - https://webmasters.stackexchange.com/questions/1858/how-to-show-all-albums-in-wordpress-nextgen-gallery mais que on n'a pas de réponse et n'a pas été migré ici.

Merci Jona

2
Jona

Je n'ai pas de solution toute prête, mais de petites astuces.

Vous obtenez tous les albums de nggallery avec une petite sélection SQL. Cela donne un tableau avec toutes les données de l'album. Si vous avez les bons champs, changez le * et utilisez seulement les champs, stockez vos données.

    global $wpdb; 
    $albumlist = $wpdb->get_results("SELECT * FROM $wpdb->nggalbum ORDER BY id");

Après ce résultat, vous pouvez créer dans un modèle une liste contenant ces données, comme le nom, par exemple.

    foreach( $albumlist as $album ) {
        echo '<b>ID: ' . $album->id . ' Name: ' . $album->name . '</b><br>';
    }

Avant de jouer avec une sélection de sql, veuillez jouer avec la variable globale et les fonctions de nextgen. La variable importante de ngg est $nggdb. À ce propos, vous pouvez utiliser de nombreuses méthodes de la classe ngg, lik get_used_galleries().

Je connais cette méthode. S'il vous plaît vérifier la source exemple.

global $nggdb;
$galleries = array();
/* find all galleries */
foreach( $nggdb->find_all_galleries() as $gallery ) {
   // check the array $gallery
   // $gallery: name, path(wp-content), title, previewpicID, author
   array_Push( $galleries, $gallery->gid );
}
/* create a temporary album with all galleries */
echo nggCreateAlbum( $galleries, 'grid' );
4
bueltge