2015-06-15 1 views
0

Как можно достичь две вещи с существующим кодом ниже:Bxslider, Пользовательские поля и Wordpress

  1. Удалить нулевые значения, так как они являются экспорт bxslider элементов, которые нарушили ссылки
  2. почему два отображаются версии каждого изображения в пейджере. Кто-нибудь может понять, почему и как я останавливаю эти дубликаты.

    <ul class="bxslider"> 
    <?php 
    $images = get_post_meta(get_the_ID() , "images", true); 
    $images = unserialize($images); 
    
    // Read into array 
    
    foreach($images as $image) 
        { 
        $ar[] = array(
         "order" => $image['order'], 
         "img_id" => $image['image_id'], 
         "desc" => $image["desc"] 
        ); 
        } 
    
    // Sort array by order 
    
    asort($ar); 
    
    // Output data for Galleria 
    
    foreach($ar as $item) 
        { 
        $image_id = $item['img_id']; 
        $media_med = wp_get_attachment_image_src($image_id, "medium", false); 
        $media_full = wp_get_attachment_image_src($image_id, "full", false); 
        echo "<li><img data-title='" . $item["desc"] . "' data-big='" . $media_full[0] . "' src='" . $media_med[0] . "'></li>"; 
        } 
    
    ?> 
    </ul> 
    <div id="bx-pager"> 
    <?php 
    $images = get_post_meta(get_the_ID() , "images", true); 
    $images = unserialize($images); 
    
    // Read into array 
    
    foreach($images as $image) 
        { 
        $ar[] = array(
         "order" => $image['order'], 
         "img_id" => $image['image_id'], 
         "desc" => $image["desc"] 
        ); 
        } 
    
    // Sort array by order 
    
    asort($ar); 
    
    // Output data for Galleria 
    
    foreach($ar as $item) 
        { 
        $image_id = $item['img_id']; 
        $media_med = wp_get_attachment_image_src($image_id, "medium", false); 
        $media_full = wp_get_attachment_image_src($image_id, "full", false); 
        echo "<a href='' data-slide-index='0'>"; 
        echo "<img src='" . $media_med[0] . "'>"; 
        echo "</a>"; 
        } 
    
    ?> 
    </div> 
    

ответ

1

Во-первых, вы можете запустить array_filter() в массиве $ ар для удаления ложных/пустые значения.

Далее, вы, вероятно, не нужна эта линия

$media_full = wp_get_attachment_image_src($image_id, "full", false); 

Вы могли бы прокомментировать его, и он не будет иметь никакого эффекта на этой странице.

+0

Благодарим за это. У меня не было опыта с array_filter - можете ли вы включить пример в текст моего кода, пожалуйста? – dmt

+0

Перед сортировкой массива. array_filter ($ ar); asort ($ ar); – DoctorFox