2014-06-22 2 views
0

나는 wordpress 테마를 만들고 있습니다. 백엔드에서 사용자는 소셜 네트워크 (즉, 트위터, 페이스 북, 인스 타 그램 등)에 대한 URL을 입력 할 수 있습니다. 이러한 URL은 해당 네트워크에 연결되는 테마 프런트 엔드의 이미지에 동적으로 추가됩니다.텍스트 값이 비어 있으면 PHP wordpress

사용자가 네트워크 URL을 입력하지 않으면 이미지가 표시되는 것을 원하지 않습니다. URL이 비어 있으면 echo 'class = "hidden"-이 클래스는 css에 display : none이라는 코드를 작성하려고합니다.

<ul class="icons"> 
    <li <?php if (get_theme_mod('footer_twitter')==0) {echo 'class="hidden"'; } ?>><a href="<?php echo get_theme_mod('footer_twitter'); ?> " class="icon circle fa-twitter"><span class="label">Twitter</span></a></li> 
</ul> 

와 CSS : 여기

은 내 PHP의 조각입니다

ul.icons li.hidden { 
    display:none; 
} 

현재 위의 PHP 코드는 URL을 입력하는 경우에도, 모든 경우 에코 문을 출력 백엔드. 아무도이 코드를 도와 줄 수

+0

'echo (empty (get_theme_mod ('footer_twitter'))))? 'class = "hidden":' '; 아마도? – Darren

+0

두려워하지 않습니다. 다음과 같은 치명적인 오류가 발생했습니다. 쓰기 컨텍스트에서 함수 반환 값을 사용할 수 없습니다. –

답변

1

"get_theme_mod()"의 반환을 확인 당신은 이것을 사용하여 이것을 확인할 수 있습니다, 왜냐하면 나는 "== 0"이라고 생각하지 않습니다.

<ul class="icons"> 
    <li class="<?php echo empty(get_theme_mod('footer_twitter')) ? 'hidden' : ''; ?>"> 
     <a href="<?php echo get_theme_mod('footer_twitter'); ?> " class="icon circle fa-twitter"> 
      <span class="label">Twitter</span> 
     </a> 
    </li> 
</ul> 

이 구문을 확인하십시오 : 당신의 "보기"코드에서 제어 구조를 코딩하는 http://php.net/manual/en/control-structures.alternative-syntax.php의 가장 좋은 방법 http://codex.wordpress.org/Function_Reference/get_theme_mod

var_dump(get_theme_mod('footer_twitter')); 
//string(0) 

여기에 새로운 코드입니다.

+0

이 작업을하려면 var_dump 행을 코드 상단에 추가해야합니까? –

+1

아니요, var_dump는 함수 "get_theme_mod()"를 명시 적으로 반환합니다. 그 int (0)을 확인하고 다른 것은 아닙니다. "get_theme_mod ('footer_twitter') === 0" – lin

+0

"get_theme_mod ('footer_twitter') === 0은"get_theme_mod ('footer_twitter') == 0 '과 같지 않습니다. 따라서 두 번째 경우에 "get_theme_mod ('footer_twitter')"가 int (0) 대신 bool (false)을 반환하면 조건이 "true"가됩니다. 원인 -> "if (false == 0) {// true}";) – lin

관련 문제