2014-09-02 2 views
0

현재 새 갤러리가있는 WordPress 용 사용자 정의 템플릿을 업그레이드하려고합니다. swipebox 확장자와 함께 Justified-Gallery을 사용하고 싶습니다.Wordpress 용 스 와이프 박스가있는 Justified-Gallery

이미 필요한의 .js 및 .CSS 파일을 포함하고 내 functions.php은 다음과 같습니다

add_filter('post_gallery', 'wpse8170_gallery_shortcode', 10, 2); 
function wpse8170_gallery_shortcode($output, $attr) { 
$post = get_post(); 

static $instance = 0; 
$instance++; 

// override default link settings 
if (empty( $attr['link'])) { 
    $attr['link'] = 'none'; // set your default value here 
} 

if (!empty($attr['ids'])) { 
    // 'ids' is explicitly ordered, unless you specify otherwise. 
    if (empty($attr['orderby'])) 
     $attr['orderby'] = 'post__in'; 
    $attr['include'] = $attr['ids']; 
} 

// We're trusting author input, so let's at least make sure it looks like a valid orderby statement 
if (isset($attr['orderby'])) { 
    $attr['orderby'] = sanitize_sql_orderby($attr['orderby']); 
    if (!$attr['orderby']) 
     unset($attr['orderby']); 
} 

extract(shortcode_atts(array(
    'order'  => 'ASC', 
    'orderby' => 'menu_order ID', 
    'id'   => $post ? $post->ID : 0, 
    'itemtag' => 'dl', 
    'icontag' => 'dt', 
    'captiontag' => 'dd', 
    'columns' => 3, 
    'size'  => 'thumbnail', 
    'include' => '', 
    'exclude' => '' 
), $attr, 'gallery')); 

$id = intval($id); 
if ('RAND' == $order) 
    $orderby = 'none'; 

if (!empty($include)) { 
    $_attachments = get_posts(array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby)); 

    $attachments = array(); 
    foreach ($_attachments as $key => $val) { 
     $attachments[$val->ID] = $_attachments[$key]; 
    } 
} elseif (!empty($exclude)) { 
    $attachments = get_children(array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby)); 
} else { 
    $attachments = get_children(array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby)); 
} 

if (empty($attachments)) 
    return ''; 

if (is_feed()) { 
    $output = "\n"; 
    foreach ($attachments as $att_id => $attachment) 
     $output .= wp_get_attachment_link($att_id, $size, true) . "\n"; 
    return $output; 
} 

$itemtag = tag_escape($itemtag); 
$captiontag = tag_escape($captiontag); 
$icontag = tag_escape($icontag); 
$valid_tags = wp_kses_allowed_html('post'); 
if (! isset($valid_tags[ $itemtag ])) 
    $itemtag = 'dl'; 
if (! isset($valid_tags[ $captiontag ])) 
    $captiontag = 'dd'; 
if (! isset($valid_tags[ $icontag ])) 
    $icontag = 'dt'; 

$columns = intval($columns); 
$itemwidth = $columns > 0 ? floor(100/$columns) : 100; 
$float = is_rtl() ? 'right' : 'left'; 

$selector = "gallery-{$instance}"; 

$gallery_style = $gallery_div = ''; 
if (apply_filters('use_default_gallery_style', true)) 
    $gallery_style = " 
    <style type='text/css'> 
     #{$selector} { 
      margin: auto; 
     } 
     #{$selector} .gallery-item { 
      float: {$float}; 
      margin-top: 10px; 
      text-align: center; 
      width: {$itemwidth}%; 
     } 
     #{$selector} img { 
      border: 2px solid #cfcfcf; 
     } 
     #{$selector} .gallery-caption { 
      margin-left: 0; 
     } 
     /* see gallery_shortcode() in wp-includes/media.php */ 
    </style>"; 
$size_class = sanitize_html_class($size); 
$gallery_div = "<div class='swipeboxEx'>"; 
$output = apply_filters('gallery_style', $gallery_style . "\n\t\t" . $gallery_div); 

$i = 0; 
foreach ($attachments as $id => $attachment) { 
    if (! empty($attr['link']) && 'file' === $attr['link']) 
     $image_output = wp_get_attachment_link($id, $size, false, false); 
    elseif (! empty($attr['link']) && 'none' === $attr['link']) 
     $image_output = wp_get_attachment_image($id, $size, false); 
    else 
     $image_output = wp_get_attachment_link($id, $size, true, false); 

    $image_meta = wp_get_attachment_metadata($id); 

    $orientation = ''; 
    if (isset($image_meta['height'], $image_meta['width'])) 
     $orientation = ($image_meta['height'] > $image_meta['width']) ? 'portrait' : 'landscape'; 

    $output .= $image_output; 
} 

$output .= "</div>\n"; 

return $output; } 

나는 또한 내가 잘해야합니다 아마 생각하는 템플릿의 바닥 글에 약간의 스크립트를 포함 갤러리 레이아웃은 오른쪽 스타일이지만 스 와이프 박스가 없기 때문에 Google을 사용하여 시도했지만 시도했지만 해결책을 찾을 수 없습니다.

Here 테스트 페이지를 볼 수 있습니다.

답변

0

나는 Justified Gallery의 저자이고 Flickr에서 이미지를로드하고 Justified Gallery를 사용하여 표시하고 Swipebox를 사용하고 싶은 경우 WordPress 용 플러그인을 만들었습니다.

당신은 Wordpress Justified Gallery for Wordpress homepage

다운로드에 플러그인을 찾을 정당화 갤러리를 사용하여 갤러리를 표시하는 모든 간단한 단계가 있습니다 주요 .PHP 파일 내에서 찾을 수 있습니다.

관련 문제