26-07-2014, 01:37
Mogę ci powiedzieć, jak ja to kiedyś robiłem.
Używałem pluiginu WP Simple Galleries - moim zdaniem jeden z lepszych, mimo że bardzo prosty.
Plugin ten dodaje ci możliwość wgrywania galerii do danej strony czy kategorii elementu. W połączeniu z advanced custom fields daje to naprawdę fajne rozwiązanie i czytelne od strony backendu.
Ja sobie stworzyłem strony o kategorii Galeria. Następnie na stronie głownej robiłem pętlę pobierając wpisy o tej kategorii i dla każdego z nich pobierając zdjęcia. Potem te galerie łączyłem w jedną tablicę (array_merge), Potem ją sortowałem i pobierałem kilka najnowszych zdjęć. Poniżej kod który to robił (po części korzysta z metod, które daje powyższy plugin)
Aby potem to wyswietlic korzystalem z kodu:
Używałem pluiginu WP Simple Galleries - moim zdaniem jeden z lepszych, mimo że bardzo prosty.
Plugin ten dodaje ci możliwość wgrywania galerii do danej strony czy kategorii elementu. W połączeniu z advanced custom fields daje to naprawdę fajne rozwiązanie i czytelne od strony backendu.
Ja sobie stworzyłem strony o kategorii Galeria. Następnie na stronie głownej robiłem pętlę pobierając wpisy o tej kategorii i dla każdego z nich pobierając zdjęcia. Potem te galerie łączyłem w jedną tablicę (array_merge), Potem ją sortowałem i pobierałem kilka najnowszych zdjęć. Poniżej kod który to robił (po części korzysta z metod, które daje powyższy plugin)
Kod:
<?php
function getThumb($id, $post_id) {
$url = wp_get_attachment_url($id);
if (wpsg_of_get_option('wpsimplegallery_use_timthumb', '0') === '1') {
$width = 190;
$height = 230;
$image = array(
WPSIMPLEGALLERY_URL . 'timthumb.php?src=' . $url . '&q=85&w=' . $width . '&h=' . $height,
$width,
$height
);
} else {
$image = wp_get_attachment_image_src($id, array(190,190), true);
}
return $image[0];
}
function getImagesInGallery($post_id = false, $nr) {
global $post;
global $images;
$gallery = get_post_meta($post_id, 'wpsimplegallery_gallery', true);
$gallery = (is_string($gallery)) ? @unserialize($gallery) : $gallery;
if (is_array($gallery) && count($gallery) > 0) {
$nr = 0;
foreach ($gallery as $thumbid) {
$image = getThumb($thumbid, $post_id);
if (!isset($images[$nr])) $images[$nr] = Array();
array_push($images[$nr], Array($image, get_permalink($post_id)));
$nr++;
}
}
}
$param = array( 'post_type' => 'Galeria');
$loop = new WP_Query( $param );
$images = Array();
$countImages = 0;
while ( $loop->have_posts() ) {
$loop->the_post();
getImagesInGallery($post->ID, $galleryNr);
}
$result = Array();
for ($i=0; $i<count($images); $i++) {
$result = array_merge($result, $images[$i]);
}
if (count($result)<9) {
$imagesNumber = count($result);
} else {
$imagesNumber = 9;
}
?>
Aby potem to wyswietlic korzystalem z kodu:
Kod:
<ul>
<?php
for ($i = 0; $i<$imagesNumber; $i++) {
echo '<li><a href="'.$result[$i][1].'"><img src="'.$result[$i][0].'" /></a></li>';
}
?>
</ul>