워드프레스에서는 다양한 소셜 공유 플러그인이 제공됩니다. 하지만 보통 SNS 공유 플러그인은 리소스를 많이 차지하여 사이트 속도에 부정적인 영향을 미칠 수 있습니다. 해외의 어떤 사이트의 글에서 소셜 공유 플러그인을 삭제하라는 글을 본 적이 있습니다.
실제로 '가볍다'고 선전하는 소셜 공유 버튼 플러그인을 추가해서 테스트해보면 속도에 영향을 미치는 것을 확인할 수 있었습니다. 플러그인을 모두 테스트하여 괜찮은 것을 고르면 좋겠지만 그럴 시간도 없고 해서 최근 이 블로그의 테마를 유료 테마에서 무료 테마로 바꾸면서 소셜 공유 버튼도 삭제하고 별도의 플러그인을 설치하지 않고 있었습니다.
이 블로그에 사용된 소셜 공유 버튼과 URL 복사 버튼의 코드를 개선하여 공개했습니다. 최종 버전은 이 글을 참고하시기 바랍니다.
플러그인을 사용하지 않고 SNS 공유 버튼 추가하기
하지만 아무래도 SNS 공유 기능이 필요할 것 같아서 직접 코드를 사용하여 SNS 공유 버튼을 추가하는 방법을 검색해보았습니다. 그래서 "How to Create Social Sharing Button without any Plugin and Script Loading? WordPress Speed Optimization Goal"라는 글에서 제대로 작동하는 코드를 발견할 수 있었습니다. 제목에서 알 수 있듯이 플러그인과 스크립트 로드 없이 소셜 공유 버튼을 만드는 방법을 설명하고 있습니다. 스크립트를 로드하지 않으니 아무래도 속도에 미치는 영향이 최소화되는 것 같습니다. 코드를 그대로 적용하면 개별 글과 페이지(그리고 블로그 페이지)에 소셜 공유 버튼이 추가됩니다.
저는 위 링크의 코드를 약간 수정하여 개별 글에서만 소셜 공유 버튼이 표시되도록 하고 필요 없는 "Buffer"와 "Pin It" 버튼은 삭제했습니다. 대신 네이버 블로그 공유 버튼을 추가했습니다.
트위터와 네이버에서 테스트를 해 보니 트위터는 잘 되지만, 네이버는 제목 부분의 한글이 깨지네요. 왜 네이버만 제목이 깨지냐고요??? 그럼 할 수 없죠. 직접 소스를 바꿀 수밖에요. 네이버 제목 부분을 다르게 처리해주도록 조금 소스를 바꾸었습니다. (페이스북과 Google+는 테스트를 해보지 않았습니다. 아마 문제 없이 잘 될 것 같습니다만, 혹시 문제가 되면 아래에 댓글을 통해 알려주시기 바랍니다.)
네이버 공유 버튼 추가하기
네이버 블로그 공유 버튼을 추가하려면 다음 라인을 추가해주면 됩니다.
$naverURL = 'http://blog.naver.com/openapi/share?url='.$crunchifyURL.'&title='.$currentnavertitle;
그리고 제목 부분은 다음과 같이 조금 수정했습니다.
$currentnavertitle = encodeURIComponent(get_the_title());
encodeURIComponent 함수는 다음과 같이 정의하도록 합니다.
function encodeURIComponent($str) { $revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')'); return strtr(rawurlencode($str), $revert); } // Reference: stackoverflow
네이버 제목 부분이 깨지는 문제를 처리하느라 조금 시간을 소비했지만 문제를 해결하고 나니까 뿌듯하네요. (이번 말까지 처리해야 할 큰 프로젝트가 있어서 바쁜데 왜 이런 데 시간을 소비하는지 모르겠네요...)
이 방법은 플러그인을 설치하지 않고 소셜 공유 버튼을 추가하려는 경우에 매우 유용합니다.
추가
이 블로그에 카카오 스토리 공유 버튼을 추가로 추가했습니다. Kakao Story 공유 버튼을 추가하는 방법은 이 글을 참고하시기 바랍니다.
대부분의 트위터 공유 플러그인과 위에서 제시된 방법에서 URL에 한글이 포함된 경우 공유된 트위터 게시글에서 링크가 제대로 작동하지 않는 문제가 발생합니다. 이 경우 urlencode 함수를 사용하여 주소를 인코딩해주면 문제가 해결됩니다(참고).
티스토리 공감 단추처럼 로그인 필요 없이 공감을 표시할 수 있는 그런 단추를 달 방법은 없을까요?
페이스북 엄지 단추나 워드프레스 별표단추는 계정 있는 사람들만 이용할 수 있으니까요.
안녕하세요?
아마 ZillaLikes라는 플러그인을 사용하면 원하는 기능을 넣을 수 있을 것입니다.
Pluto라는 테마에 ZillaLikes 플러그인이 사용되어 있을 것입니다.
고맙습니다. 그런데 워드프레스 플러그인을 찾아보니 그런 플러그인이 없네요.
다음 링크에서 ZillaLikes 플러그인을 다운로드할 수 있습니다.
http://www.themezilla.com/plugins/zillalikes/
무료입니다 :)
감사합니다. ^^
덕분에 마음에 드는 공감/추천단추를 설치할 수 있었습니다. 늘 감사합니다.
https://fruitfulife.net/워드프레스-블로그에-로그인-필요없는-공감단추를/
CSS를 이용하여 조정하면 티스토리의 공감 버튼처럼 보이도록 바꿀 수 있을 것 같습니다.
앗, 제게는 열두가지 과업중 하나로 들리는 말씀이에요... ㅎㅎ..
시간 나면 이 부분을 한번 살펴볼게요. 어쩌면 Pluto 테마에 포함된 기능을 활용하는 것도 가능할 것 같습니다.
Pluto 테마(https://1.envato.market/QWmAM )에서 예전에는 Zilla 플러그인을 사용한 것 같지만, 최근 버전에서는 다른 방법으로 구현한 것 같기도 하고요. (이 부분은 살펴보아야 알 수 있을 것 같습니다.)
https://uploads.disquscdn.com/images/04c118526425ba38c2f2962b1ef7d89a28fcf3c36d36fb895cc12f5e14c23a71.jpg
늘 생각하지만, 탐구자+능력자십니다. ^^
안녕하세요?
조금 살펴보니 하트 크기는 정해져 있기 때문에 크기를 조정하려면 크기가 조금 더 큰 하트 아이콘 두 개(공감을 누르기 전 하트, 공감을 누른 후 하트)를 업로드하여 하트 아이콘을 새로 설정할 수 있습니다.
우선 현재 상황에서 공감 버튼을 그림과 같이 수정할 수 있습니다.
https://uploads.disquscdn.com/images/1606101f7e653e038a738a59ba693992a0933616c13320609c5487d67f33b9f7.jpg
방법은 시간이 될 때 정리하여 별도의 글로 올려보겠습니다.
간단히 말씀드리면 Disable CSS를 체크하시고 다음과 같은 CSS 코드를 차일드 테마 내의 style.css 파일에 추가해보시기 바랍니다.
.zilla-likes {
background: url(도메인주소/wp-content/plugins/zilla-likes/images/heart.png) no-repeat 10px 49%;
display: inline-block;
margin-bottom: 10px;
min-height: 14px;
padding-left: 28px;
padding-right: 10px;
text-decoration: none;
border-radius: 1px !important;
border: 1px solid #959595 !important;
border-color: rgba(149,149,149,0.25) !important;
position: relative;
left: 50%;
transform: translateX(-50%);
}
.zilla-likes:hover,
.zilla-likes.active {
background: url(도메인주소/wp-content/plugins/zilla-likes/images/heart_active.png) no-repeat 10px 49%;
margin: 0 0 10px 0 !important;
padding-left: 28px !important;
padding-right: 10px !important;
text-decoration: none;
border-radius: 1px !important;
border: 1px solid #959595 !important;
border-color: rgba(149,149,149,0.25) !important;
position: relative;
left: 50%;
transform: translateX(-50%);
}
아바다 테마(https://www.thewordcracker.com/go/avada )에서 테스트했는데, 위의 그림과 같이 잘 표시되네요.
위의 코드를 올린 후에 잘 안 되면 캐시 플러그인의 캐시와 브라우저 캐시를 삭제해보시기 바랍니다.
이렇게 애써주셔서 고맙습니다. ^^
알려주신대로 해봤어요.
누르기 전에는 하트가 안보이고, 누르고 난 다음에는 전과 동일한 크기의 하트가 나옵니다. ^^;
끝에 모두 !important;를 추가해보시기 바랍니다. (어떤 항목은 추가되어 있고 어떤 항목은 안 되어 있는데요. 모두 추가한 다음에 캐시를 삭제해보시기 바랍니다. 그리고 Disable CSS를 체크해야 합니다.
안녕하세요?
먼저 명절 잘 보내시고 새해 복 많이 받으시기 바랍니다.
이전 댓글에서 이 게시글을 말씀하시어 여기에 와 봤습니다.
도움이 되는 글 감사드리면 말씀하신 코드 예제를 받아볼 수 있을까요?
메일 주소는 입니다.
미리 감사드립니다.
안녕하세요?
이메일로 보내드렸습니다.
혹시 해보고 잘 안 되면 알려주세요.