2013-02-01 2 views
0

저는 현재 매우 기본적인 단축 코드를 가지고 있습니다 만, 그것에 매개 변수를 추가 할 수 있도록 확장하려고합니다 (예 : [fanColours number=3]). 기본적으로 매개 변수는 게시물에 표시 될 이미지 링크의 개수를 지정합니다.간단한 사용자 정의 워드 프레스 단축 코드로 확장

나는 다양한 방법 온라인 확인
function fanColours() { 

      return '<div class="fansc clearfix"> 

         <h3>Available Colours</h3> 

          <ul class="fan-colours clearfix"> 

           <li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone_on.jpg" alt="Black" width="87" height="87"></a></li> 
           <li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone_on.jpg" alt="White" width="87" height="87"></a></li> 
           <li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone_on.jpg" alt="Yellow" width="87" height="87"></a></li> 

          </ul> 
        </div>'; 
} 
add_shortcode('fanColours', 'fanColours'); 

내가 아래에 추가 한 올바른 방향으로 향하고있을 듯 뭔가를 찾았지만, 나는 위의 코드로 구현 대해 이동하는 방법을 잘 모르겠습니다.

편집 : 그래서 지금 단축 코드 [fanColours number=3]를 사용하여 한 마지막 연주는 다음과 같습니다 : 사전에

function fanColours($atts) { 
    $links = array(); 
     $links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone_on.jpg" alt="Black" width="87" height="87"></a></li>'; 

     $links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone_on.jpg" alt="White" width="87" height="87"></a></li>'; 

     $links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/red_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/red_bone_on.jpg" alt="Red" width="87" height="87"></a></li>'; 

      extract(shortcode_atts(array(
       'number' => '', 
      ) , $atts)); 

    $number = ($number < 0) ? 0 : $number; 
      $nr_of_links = ($number < count($links)) ? $number : count($links); 

      $output = '<div class="fansc clearfix"><h3>Available Bone Colours</h3><ul class="fan-colours clearfix">'; 

      for($i = 0; $i < $nr_of_links; $i++) { 
       $output .= $links[$i]; 
      } 

      $output .= '</ul></div>'; 
      return $output; 
     } 

덕분에 어떤 도움이나 조언을 나는 꽤 가파른 여전히 나처럼, 나와 함께 곰을하시기 바랍니다 학습 곡선과 희망을 충분히 설명했다.

답변

1

extract은 연관 배열을 취해 각 키를 변수로 변환합니다. 따라서이 경우 $number의 값은 기본적으로 3입니다. 이는 shortcode_atts가 $atts을 배열과 비교하기 때문이며, 값이 $atts에 설정되지 않은 경우 배열의 값으로 설정합니다.

나는 이것이 모두 당신이 알아야 할 것 같아요? 또는 "마법"에 대한 도움이 필요하십니까? 첫번째 코멘트에 응답

편집 :

그래서 지금 당신은 표시 할 링크의 최대 수 있습니다. 당신이 원하는 것을 할 수있는 많은 방법이 있습니다. 하지만 한 가지 방법은 다음과 같습니다.

<?php 
$links=array(); 
$links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone_on.jpg" alt="Black" width="87" height="87"></a></li>'; 
$links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone_on.jpg" alt="White" width="87" height="87"></a></li>'; 
$links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone_on.jpg" alt="Yellow" width="87" height="87"></a></li>' 

$number = ($number < 0) ? 0 : $number; 
$nr_of_links = ($number < count($links)) ? $number : count($links); 

for($i = 0; $i < $nr_of_links; $i++) { 
    echo $links[$i]; 
} 
?> 

여기서? 여기에서 읽을 수있는 삼항 연산자입니다. http://php.net/manual/en/language.operators.comparison.php

+0

설명적인 응답을 보내 주셔서 감사합니다. 슬프게도, 나는 너무 많은 문제가 아니더라도 "마법"을 구현하는데 약간의 도움이 필요하다! – Plastika

+0

그건 문제가되지 않습니다. 정말로, 질문의 일부인지 확실하지 않았습니다. 나는 당신이 원하는 것을하는 몇 가지 코드로 업데이트했다. 당신은 당신의 목록을 그것으로 대체해야합니다. –

+0

훌륭한 도움을 주셔서 감사합니다. 위의 다른 질문에 위의 코드를 추가했습니다. 괜찮 았으면 좋겠어요. – Plastika

관련 문제