Twitter Card on Google Blogger(블로거에 트위터 카드 적용하기)
트위터 공유하면서 의아했던게 하나 있느데, 트위터에선 og태그가 먹지 않습니다..
별 신경 안쓰고 있다가 혹시나 하고 좀 찾아보니 별도의 포맷을 가지고 있더군요. 간략하게 정리해봅시다.
결과는 이런거에요 :) |
Twitter Card
트위터에선 og태그와 비슷한 기능을 하는 것을 카드라고 부릅니다. 포맷은 이런 형태입니다.
- twitter:card - card type
- twitter:url - url
- twitter:title - 제목
- twitter:description - 내용 일부
- twitter:image - 대표 이미지
여기서 card type이 뭘까 하실 수 있는데, 아래 링크 보시면 대충 알 수 있습니다. https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards.html
- summary. : 일반적인 웹 사이트 카드
- summary-large : 이미지 큰 버전
- player : 비디오 재생 가능한 카드
- app : Download app 같이 기능 담을 수 있는 카드
정도가 있고 용도에 맞게 사용해주시면 됩니다. meta 태그 예시는 이렇습니다.
<meta name="twitter:card" content="summary">
<meta name="twitter:url" content="https://www.hahwul.com">
<meta name="twitter:title" content="제목제목">
<meta name="twitter:description" content="내용 요약">
<meta name="twitter:image" content="혹시나 있다면 이미지!">
다른 Card 적용하기
카드 Type별 예시: https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards.html 카드 문법: https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/markup
Twitter card on Google Blogger
예전에 og태그랑 카카오링크 공유하기 적용한거랑 거의 비슷합니다. Blogger 문법으로 적용 가능합니다.
(Javascript로 처리할수도 있지만, 웹에서 <meta>
태그를 먼저 읽기 떄문에 정확하게 적용될지는 모르겠네요)
Title:
- Blogger: <data:post.title/>
- Javascript: document.title
Image:
- Blogger: <data:post.firstImageUrl>
- Javascript: document.images[0].src
Url:
- Blogger: <data:post.sharePostUrl>
- Javascript: document.location.href
Description:
- Blogger: <data:post.metaDescription>, <data:post.snippet>
- Javascript: X
Blogger에 적용하기엔 Blogger 태그가 편하니깐 이쪽으로 작성해보겠습니다. 우선 data:post가 post 영역 하위에서만 먹히기 때문에 아래 부분을 찾기로 찾아줍시다 Ctrl+F - 입력
<b:includable id='post' var='post'>
그다음 하위에 아래와 같이 코드를 넣어줍니다.
<meta content='summary' name='twitter:card'/>
<meta content='@hahwul' name='twitter:site'/>
<meta content='@hahwul' name='twitter:creator'/>
<meta content='www.hahwul.com' name='twitter:domain'/>
<meta expr:content='data:post.firstImageUrl' name='twitter:image:src'/>
<meta expr:content='data:post.title' name='twitter:title'/>
<b:if cond='data:blog.metaDescription'>
<meta expr:content='data:blog.metaDescription' name='twitter:description'/>
<b:else/>
<meta expr:content='data:post.snippet' name='twitter:description'/>
</b:if>
<meta expr:content='data:post.sharePostUrl' name='twitter:url'/>
그러고 validator(https://cards-dev.twitter.com/validator)로 테스트해보면..
와우 잘 되네요!
테스트하면서 삽질좀 했었는데, 혹시나 도움되실 가능성도 있으니 추가해놓습니다.
A waste of time..
post 이외에서 작성하는 방법입니다. 처음에 최상단에 적용하려고 이렇게 헀었다가 이미지 불러올 방도가 없어서 포기..
<head>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:url" expr:content='data:blog.url' />
<meta name="twitter:title" expr:content='data:blog.pageTitle' />
<meta name="twitter:description" content="내용 요약" />
<meta name="twitter:image" content="혹시나 있다면 이미지!" />
</head>
Javascript를 이용한 동적 구성인데, 코드상으로 반영은되나 twitter가 제대로 못불러왔던 것 같습니다. (이건 좀 테스트 해봐야 정확하게 될지 안될지 나올 것 같네요..
<head>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:url" content="https://www.hahwul.com" />
<meta name="twitter:title" content="제목제목" />
<meta name="twitter:description" content="내용 요약" />
<meta name="twitter:image" content="혹시나 있다면 이미지!" />
</head>
<script>
$("meta[name='twitter:url']").attr("content", document.location);
$("meta[name='twitter:title']").attr("content", document.title);
$("meta[name='twitter:description']").attr("content", "abcd");
$("meta[name='twitter:image']").attr("content", "abcd");
</script>
Reference
https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards.html https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/markup