web-dev-qa-db-ja.com

ページにnggalleryのすべてのアルバムを表示する

私は私のサイト上のフォトアルバムやギャラリーを処理するために人気のあるNextGen Gallery/nggalleryプラグインを使用しています。

私は写真をアルバムに整理してショートコードを使って表示することができます。私が苦労しているのは、サイト上のすべてのフォトアルバムを表示するマスターの "Photo Galleries"ページを作成したいということです。

これを行う方法について何かアドバイス/アイデア?私がこれまでオンラインで見つけた唯一の漠然と便利な提案は、私がサブアルバムとして他のすべてを持っているマスターアルバムを持つようにアルバムを並べ替えることです。アップロード時に各ギャラリー/アルバムを並べ替える必要があるため、これは最適とは言えません。

私はスタックネットワーク上の他の場所でこの質問の複製を見つけました - https://webmasters.stackexchange.com/questions/1858/how-to-show-all-albums-in-wordpress-nextgen-gallery しかしそれは答えがないので、ここに移行されていません。

ありがとうジョナ

2
Jona

解決策はありませんが、ちょっとしたヒントがあります。

あなたは小さなSQLの選択でnggalleryからすべてのアルバムを取得します。これはアルバムへのすべてのデータを含む配列を取得します。適切なフィールドがある場合は、*を変更してフィールドのみを使用し、そこにデータを格納します。

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

この結果の後、例として名前のように、テンプレートにこのデータを含むリストを作成できます。

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

あなたがSQLの選択で遊ぶ前に、グローバル変数とnextgenの機能を一緒にプレイしてください。 nggの重要な変数は$nggdbです。これに関して、nggのクラスにはget_used_galleries()のように多くのメソッドを使うことができます。

私はこの方法について知っています。サンプルソースを確認してください。

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