워드프레스 포스트 이미지 첨부파일 링크에 class 추가하기

워드프레스 포스트 내용 중 이미지 첨부파일의 링크에 class를 추가하는 방법이다. 이 방법이 필요한 이유는 새로운 워드프레스 블로그를 하나 준비하면서 테마 수정 중에 테마관련 문서를 보니 jQuery prettyPhoto 플러그인을 기본 적용되어 있다고 하는데 기존에 올려진 이미지에 이 플러그인 적용시키려면 포스트 내용을 모두 수정해야하는 만만치 않은 일이 생겨서 php코드를 이용해 이 문제를 해결하기 위함이다.

add_filter('the_content', 'add_lighthbox_class');
function add_lighthbox_class($content)
{
    preg_match_all('/(<a[^>]+href=['"]?([^>'"]+[^>'"]+)['"]?[^>]*>).*<img alt="">]+>.*</a>/i', $content, $matchs);
    $count = count($matchs[2]);

    for($i=0; $i<$count; $i++) {
        if(strpos( $matchs[1][$i], 'prettyPhoto' )) continue;

        $a = preg_replace('/>$/i', ' class="prettyPhoto">', $matchs[1][$i]);

        $content = str_replace($matchs[1][$i], $a, $content);
    }

    return $content;
}

위 코드를 테마의 functions.php 파일에 추가한다. jQuery prettyPhoto플러그인을 적용하기 위해서는 a 태그에 class=”prettyPhoto”가 추가되어 있어야 하는데 이것을 본문 내영 중에서 이미지링크 부분을 정규식을 추출해서 class를 추가하는 코드이다. 사진과 관련하여 lightbox 플러그인을 적용하기 위해서 rel=”lightbox” 를 추가하는 경우가 있는데 이런 경우에도 위의 코드를 수정해서 적용할 수 있을 것이다. 플러그인의 확인은 http://realsnap.kr/ 에서 할 수 있다.

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.