私は私のサイト上のフォトアルバムやギャラリーを処理するために人気のあるNextGen Gallery/nggalleryプラグインを使用しています。
私は写真をアルバムに整理してショートコードを使って表示することができます。私が苦労しているのは、サイト上のすべてのフォトアルバムを表示するマスターの "Photo Galleries"ページを作成したいということです。
これを行う方法について何かアドバイス/アイデア?私がこれまでオンラインで見つけた唯一の漠然と便利な提案は、私がサブアルバムとして他のすべてを持っているマスターアルバムを持つようにアルバムを並べ替えることです。アップロード時に各ギャラリー/アルバムを並べ替える必要があるため、これは最適とは言えません。
私はスタックネットワーク上の他の場所でこの質問の複製を見つけました - https://webmasters.stackexchange.com/questions/1858/how-to-show-all-albums-in-wordpress-nextgen-gallery しかしそれは答えがないので、ここに移行されていません。
ありがとうジョナ
解決策はありませんが、ちょっとしたヒントがあります。
あなたは小さな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' );