Blogger - 14 b:if 제어문

Blogger b:if 제어문 - 블로거에서 가장 많이 사용되는 if 문 사용 방법.
2 min read

if는 블로거에서 가장 많이 사용되는 제어문입니다.

b:if 제어문

구글 블로그의 if 문은 <b:if> ... <b:elseif/> ... <b:else/> ... </b:if>와 같은 방법으로 제어할 수 있습니다.

<b:if cond='조건식 1'>
  <!-- 조건이 참이면 실행 -->
<b:elseif cond='조건식 2'/>
  <!-- 첫 번째 조건이 거짓이면 실행 -->
<b:else/>
  <!-- 모든 조건이 거짓이면 실행 -->
</b:if>

<b:if>에는 하나의 속성만 사용할 수 있으며 cond 속성은 불리언(boolean)으로 지정합니다.

예를 들어 다음과 같은 형식으로 사용될 수 있습니다.

<b:if cond='data:view.isHomepage'>
  <!-- 메인 페이지이면 실행 -->
</b:if>

예제

예제 1

다음은 두 조건 모두 모바일로 접속한 사용자이면 실행하는 코드입니다.

<b:if cond='data:blog.isMobile == "true"'>
  <!-- 모바일로 접속하면 실행 -->
</b:if>

<b:if cond='data:blog.isMobile'>
  <!-- 모바일로 접속하면 실행 -->
</b:if>

다음과 같이 중첩도 사용 가능합니다.

<b:if cond='data:blog.isHomepage'>
  <b:if cond='data:blog.isMobile'>
    <!-- 메인 페이지이고, 모바일로 접속하면 실행 -->
  </b:if>
</b:if>

또한 논리 연산자와 결합하여 사용 가능합니다.

다음은 모바일 접속이 아니지만 메인 페이지이면 실행하라는 뜻이 됩니다. !는 Not과 같고, ==는 and와 같습니다.

<b:if cond='!data:view.isMobile and data:view.isHomepage'>
  <!-- 조건이 참이면 실행 -->
</b:if>

<b:if cond='data:view.isMobile != and data:view.isHomepage == "true"'>
  <!-- 조건이 참이면 실행 -->
</b:if>

참고: 조건식에 사용된 따옴표는 작은 따옴표와 큰 따옴표 모두 사용 가능합니다.

예제 2

<b:if>에는 배열을 사용할 수 있습니다.

'조건식 == 값'과 같은 형식보다는 배열을 사용하는 것이 보기에도 좋고 효율적입니다.

<b:if cond='조건식 in [1, 2, 3, 4, 5, 6, 7]'>
  ...
</b:if>
<b:if cond='data:view.search.label in ["HTML", "CSS", "JS"]'>
  <!-- 라벨이 HTML, CSS, JS 중 하나라도 해당되면 실행 -->
<b:elseif cond='data:view.search.label not in ["SQL", "PHP"]'/>
  <!-- 라벨이 SQL, PHP 가 아니면 실행 -->
<b:else/>
  <!-- 모든 조건에 거짓이면 실행 -->
</b:if>

또는 중첩을 사용해도 좋습니다.

<b:if cond='조건식 == 1' >
  <b:if cond='조건식 == 2' >
    <b:if cond='조건식 == 3' >
      <b:if cond='조건식 == 4' >
        ...
      </b:if>
    </b:if>
  </b:if>
</b:if>

예제 3

<b:if>에는 삼항 연산자도 사용할 수 있습니다. 삼항 연산자는 <조건식> ? <true> : <false> 형식으로 주어진 조건식이 참이면 true를 거짓이면 false를 반환하는 형식입니다.

<div>
  <b:class expr:name='data:view.isHomepage ? "home" : "blogger"'/>
  <h1>제목</h1>
</div>

<!--
결과:
<div class='home'>
  <h1>제목</h1>
</div>
-->

현재 페이지가 메인 페이지이면 class 속성에 home을 추가하고, 메인 페이지가 아니면 blogger를 추가합니다.

You may like these posts

  • eval 연산자는 표현식의 결과를 표시하는데 사용됩니다. 블로거 데이터 값이나 문자열과 결합한 값을 출력합니다. eval 연산자 eval 연산자는 expr에 있는 블로거 변수와 일반 문자열, 그리고 숫자와 같은 값을 결합한 새로운 값을 출력합니다. <b:eval expr='조건식'/> 예를 들어 구독 …
  • URL 연산자는 URL를 구성하거나 추가하는 연산자입니다. URL 연산자 연산자 설명 path 새로운 URL 만듦 appendParams …
  • 삼항 연산자는 조건부 연산자로 ' ? ' 와 ' : '를 사용합니다. if / else 와 동일하게 동작합니다. 삼항 연산자 삼항 연산자는 expr1이 참이면 expr2를 반환하고, 거짓이면 expr3을 반환합니다. (expr1) ? (expr2) : (expr3) 첫 번째에는 조건식이 들어…
  • sourceSet 연산자는 반응형 이미지를 만들 때 사용합니다. 브라우저의 화면 크기에 따라 이미지 크기도 다르게 지정할 수 있습니다. resizeImage와 다른 점은 NewSize에 여러 이미지의 너비를 쉼표로 구분하여 설정합니다. sourceSet 연산자 …
  • 배열 연산자를 사용하면 배열의 출력 결과를 제어 할 수 있습니다. 연산자 목록 이름 연산자 피연산자 기본 구문 결과 까지 take …
  • Membership 연산자는 값이 배열에 포함된 값과 같은지 검사하는 연산자입니다. 결과는 불리언 값을 반환합니다. 연산자 목록 이름 연산자 피연산자 기본 구문 결과 …

5 comments

  1. 3년 전
    안녕하세요. 알려주신 연산 규칙 중 유독 하나만 적용이 안 돼서 문의드립니다.


    (모바일 페이지, 홈페이지, 라벨이 SP인 페이지에서 Random Posts 위젯을 숨깁니다)
    이 중에서 !data:blog.searchLabel == "SP"만 적용이 안 되고 있습니다(이 한 가지만 적용해도 안 됩니다). 참고로 제 블로그는 https://singingdalong.blogspot.com/
    입니다.

    무엇이 문제일까요?
  2. 3년 전
    안녕하세요? data:view.search.label == "SP"으로 하시면 되실거예요. 감사합니다.
    1. 3년 전
      이상하게 그게(!data:view.search.label == "SP") 안 됩니다. 그냥 모든 페이지에서 Random Posts 위젯이 숨겨집니다.
    2. 3년 전
      !data:view.search.label == "SP"
      적용했는데, 모든 페이지에서 해당 위젯이 안 보입니다. 문법은 문제가 없는 것 같은데, 이것만 단독으로 써도 적용이 안 되는 것을 보면 위젯엔 애초 적용이 안 되는 것일까요?
  3. 3년 전
    수정이 안되서 다시 남깁니다. 느낌표가 빠졌네요~~
    data:view.search.label != "SP"