2013-04-11 1 views
0

Wordpress 웹 사이트와 테마를 설치하고 있습니다. 홈페이지에 표시되는 nivoSlider가 제공됩니다. 지금은 WP 대시 보드에 로그인하고 테마 옵션 패널을 탐색하여 홈페이지에 표시 할 슬라이더를 선택할 수 있습니다. 거기에서 홈 페이지에 표시 할 슬라이더를 드롭 다운에서 선택할 수 있습니다 (슬라이더를 추가로 만들면 목록이 계속 채워집니다). 여기에 테마 옵션 패널에서 '슬라이더'에 대한 섹션을 메아리 코드입니다 :코드에서 직접 특정 슬라이더 호출하기

//------------------------------------------------------------------------------ 
// SLIDER 
//------------------------------------------------------------------------------ 

     $options[] = array("name" => __('SLIDER','gxg_textdomain'), 
               "type" => "heading", 
               "img" => "/includes/admin/images/s.png"); 

     $options[] = array("name" => __('Set up your slider','gxg_textdomain'), 
     "type" => "info"); 


     $options[] = array("name" => __('Show Slider on Homepage','gxg_textdomain'), 
               "id" => $shortname."_slider", 
               "std" => "1", 
               "type" => "checkbox"); 


     $options[] = array("name" => __('Select a Slider','gxg_textdomain'), 
               "desc" => __('After you have created a slider, you can select it here.','gxg_textdomain'), 
               "id" => $shortname."_sliderimages", 
               "type" => "select", 
               "options" => $options_slides); 

는 그리고이 홈페이지의 슬라이더의 메아리 header.php 파일 내부 코드 :

<?php get_template_part('slider'); ?> 

가 현재, 위의 코드를 템플릿 파일 안에 넣어 특정 템플릿에 슬라이더를 표시하면 테마 옵션 패널에서 선택한 슬라이더 만 표시됩니다. 여기에 slider.php 파일 내부 코드입니다 :

<div id="slider" class="nivoSlider"> 



     <?php 

       if (of_get_option('gg_slider') && of_get_option('gg_sliderimages')) { 



         global $wpdb, $post; 



         $slider = of_get_option('gg_sliderimages'); 

         $meta = get_post_meta($slider, 'gxg_slider_images', false); 



         if (!is_array($meta)) 

           $meta = (array) $meta; 



         if (!empty($meta)) { 

           $meta = implode(',', $meta); 



           $images = $wpdb->get_col(" 

             SELECT ID FROM $wpdb->posts 

             WHERE post_type = 'attachment' 

             AND ID IN ($meta) 

             ORDER BY menu_order ASC 

            "); 



           foreach ($images as $att) { 

             // Get image's source 

             $src = wp_get_attachment_image_src($att, 'full'); 

             $src = $src[0]; 



             $caption = get_post_meta($att , '_slidercaption', true); 

             $caption = htmlspecialchars($caption, ENT_QUOTES); 



             $cf = get_post_meta($att , '_sliderurl', true); 



             // Show image 

             if ($cf) {  

             echo "<a href='$cf'><img src='{$src}' alt='' title='$caption' /></a>"; 

             } else {  

             echo "<img src='{$src}' alt='' title='$caption' />"; 

             } 



           } 

         }   

       }   

     ?> 

</div><!-- .slider--> 

내가 기본적으로하고 싶은 나는 그런 방식으로 slider.php 파일을 수정하려는입니다 나는의 직접 입력 ID 중 하나를 수 슬라이더 또는 슬라이더의 슬러그 (slider.php 파일 안에 있음)를 선택하여 테마 옵션 패널에서 선택한 슬라이더에 상관없이 에코가 출력되도록합니다. 내가 이해하는 바로는,이 테마 옵션 패널에서 내 선택에 따라 슬라이더를 선택하는 것입니다 코드 수 있습니다 :

$slider = of_get_option('gg_sliderimages'); 

대신에 어떤 식 으로든 내가이 있다면 'of_get_option('gg_sliderimages')'는 위의 코드에서, 궁금 해서요 표시하려는 슬라이더의 ID/슬러그를 입력 할 수 있습니다.

솔루션을 기대합니다. 고맙습니다.

답변

0

정확하게 이해했다면 코드의 두 번째 부분을 사용자 정의보기 (예 : single.php)로 복사하고 하드 입력 한 사용자 정의 게시물이있는 사용자 정의 슬라이더를 반향시키고 싶습니까?

코드를 복사 한 후에 이미 알아 냈 듯이 템플릿 옵션에서 매개 변수가 필요한 첫 번째 조건을 삭제해야합니다. 이렇게하면 메뉴에서 선택한 내용에 관계없이 항상 슬라이더가 표시됩니다. 당신이해야 할 겁니다

$slider = of_get_option('gg_sliderimages'); 

그 $ 슬라이더 변수는 사용자 지정 테마 기능 of_get_option에 의해 전달 된 후 ID의 배열을 포함하고 있기 때문에() :

둘째, 코드 줄을 주석 처리합니다. 그런 다음 원하는대로 사용자 정의 배열의 배열을 정의해야합니다. 예 : 또한

$slider[] = array('123', '256', '455'); 

, 예를 들어 당신의 single.php 파일 query_posts에 의해 이전에 정의 된 $ 포스트를 기대하는 경우 전역 변수를 재정의하는) (아래 추가 코드를 깰 수 있다는 것을 명심; 이 경우 foreach 루프 다음에 쿼리를 다시 설정해야합니다.