[wordpress] 워드프레스 head 태그에 내용 추가하기
요즘 워드프레스 관련 글을 많이 포스팅 한다.
워드프레스로 구축한 사이트의 <head> 태그내에 특정 문자열(script)을 입력할 필요가 있다.
나같은 경우에는 구글 애드센스를 이용하는데.. 자동광고 기능이 나오면서, 이걸 한번 써보려고 했다.
자동광고는 스크립트를 <head> 태그내에 입력하면 자기가 알아서 띄워준다는 기능이다.
기존 애드센스는 위젯기능을 이용해서 사이드에 띄웠는데.. 여튼.. 워드프레스 head 태그에 넣자니 위젯으로 안돼서 좀 찾아봤다. 몇가지 방법이 있는데..
1. 먼저 테마 파일 자체를 건드리는 방법.
물론 추천하지 않는다. 테마 디렉토리의 header.php, footer.php 를 건드리면 가능하다. (테마파일은 워드프레스 설치위치/wp-content/themes/ 밑에 테마별로 있다.)
테마를 업데이트 할때마다 초기화 되고… 여튼.. 가능은 하다.
# vi ~/public_html/wp/wp-content/themes/twentyseventeen/header.php
2. 특정 테마를 사용하여 워드프레스 HEAD 태그 수정하는 방법
일부 테마는 옵션에서 헤더/푸터 섹션에 코드를 추가할 수 있는 기능을 제공한다고 한다. (예를 들어 베스트셀링 테마인 아바다(Avada)가 그렇다는데.. 난 안써봤다.)
3. 플러그인 사용 <== 지금 내가 쓰는 방법(2024년 수정)
Insert Header and Footers와 같은 플러그인을 사용하면 헤더와 푸터에 쉽게 코드를 추가할 수 있단다.
(2024.9.11.수정)
다른 일이 있어서.. WPCode 라는 플러그인을 설치 했는데.. 여기에 “헤더 및 푸터”항목이 있어서, 그냥 여기에 넣어버렸다.
특별한 기능 없이 그냥 태그 추가정도면 밑의 방법보단 이 방법이 더 편할 듯
4. 후크(functions.php) 사용 <== 내가 썼던 방법(2024년 수정)
테마 안의 functions.php 를 이용하여 특정 엑션을 후크할 수 있다. (테마의 functions.php 를 바로 고치는것보다는 차일드테마를 생성하여 수정하는걸 추천한다. 차일드 테마 관련해서는 아래의 링크를 참고하라.)
[wordpress] 워드프레스 자식테마(Child theme) 만들어보기
# cat ~/public_html/wp/wp-content/themes/twentyseventeen-child/functions.php <?php /** * Head Tag 에 구글 애드샌스 추가 */ function child_theme_head_script() { ?> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-xxxxxxxxxxxx", enable_page_level_ads: true }); </script> <?php } add_action( 'wp_head', 'child_theme_head_script' ); #
위 코드의 예는 child_theme_head_script라는 함수를 만들어서.. 거기서 <script>코드를 찍어주고.. 그 함수를 wp_head 라는 액션에 걸었다. wp_head는 header.php 를 출력할때 실행되는 듯.
php 코드내에서 특정 html코드를 직접 써주고 싶으면.. “?>”로 php를 닫아주고.. html 코드를 적어주고.. 다시 “<?php” 로 php를 열어주면 된다.
(2024.9.11.추가)
테마를 바꾸기도 했고, 3번에서 언급했지만, 다른 일로 플러그인을 설치할 일이 있어서.. 이제는 테그삽입은 플러그인 방식으로 바꿨다.
다만 특정 역할을 해야할 때(출력전 값을 바꿔줘야 한다거나, 쿼리 조건을 바꿔줘야 한다거나)는 여전히 functions.php에 function을 선언하고, add_action이나 add_filter로 처리해줘야 한다.