텍스트 자동링크 문의

워드프레스 게시판 KBoard(케이보드) 사용중입니다.

워드프레스 내장 에디터를 사용 중이구요, 자동링크를 테스트 하고 있는데요,

구글의 3가지 스타일의 도메인을 적었는데, 3가지 모두 자동으로 링크가 생성이 되지 않네요ㅠㅠ

워드프레스 내장 에디터의 상단 버튼의 '링크/삽입 편집'에 입력 안하고,

자동으로 링크를 생성하려면 어떻게 수정해야 할까요?

google.com

www.google.com

http://www.google.com

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에 functions.php 파일 하단에

    아래의 코드를 추가해보시겠어요?

    add_filter('kboard_content', 'my_kboard_content', 10, 3);
    function my_kboard_content($content, $content_uid, $board_id){
    	return preg_replace_callback('#(?i)(http|https)?(://)?(([-\w^@]+\.)+(kr|co.kr|go.kr|net|org|edu|gov|me|com|co+)(?:/[^,\s]*|))#', 'kboard_content_autolink_prependHTTP', $content);
    }
    
    function kboard_content_autolink_prependHTTP($m){
    	$mStr = $m[1].$m[2].$m[3];
    	if(preg_match('#([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#', $mStr)){
    		return "<a href=\"mailto:".$m[2].$m[3]."\" target=\"_blank\">".$m[1].$m[2].$m[3]."</a>";
    	}
    	else{
    		$http = (!preg_match("#(https://)#", $mStr)) ? 'http://' : 'https://';
    		return "<a href=\"".$http.$m[3]."\" target=\"_blank\">".$m[1].$m[2].$m[3]."</a>";
    	}
    }

    만약 워드프레스 내장 에디터의 링크 삽입/편집 기능과 동시에 사용한다면

    문제가 될 수 있으니 둘 중 하나의 기능만 사용해주세요.

    고맙습니다.

  • 이전에 안내해드린 코드는 워드프레스 내장 에디터를 사용 중일 때만 정상적으로 동작합니다.

    글 작성 에디터가 textarea로 설정되어 있다면 해당 코드는 에러가 발생할 수도 있습니다.

    textarea일 경우에는 추가한 코드가 실행되지 않도록 해주셔야 합니다.

    기존의 코드 대신 아래의 코드를 추가해보세요.

    add_filter('kboard_content', 'my_kboard_content', 10, 3);
    function my_kboard_content($content, $content_uid, $board_id){
    	$board = new KBoard($board_id);
    	if(!$board->use_editor){
    		return $content;
    	}
    	else{
    		return preg_replace_callback('#(?i)(http|https)?(://)?(([-\w^@]+\.)+(kr|co.kr|go.kr|net|org|edu|gov|me|com|co+)(?:/[^,\s]*|))#', 'kboard_content_autolink_prependHTTP', $content);
    	}
    }
    
    function kboard_content_autolink_prependHTTP($m){
    	$mStr = $m[1].$m[2].$m[3];
    	if(preg_match('#([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#', $mStr)){
    		return "<a href=\"mailto:".$m[2].$m[3]."\" target=\"_blank\">".$m[1].$m[2].$m[3]."</a>";
    	}
    	else{
    		$http = (!preg_match("#(https://)#", $mStr)) ? 'http://' : 'https://';
    		return "<a href=\"".$http.$m[3]."\" target=\"_blank\">".$m[1].$m[2].$m[3]."</a>";
    	}
    }

    위의 코드를 적용하신 후 textarea일 때 게시글 본문 자동링크 기능을 사용하시려면

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 기본설정 페이지에서

    게시글 본문 자동링크 사용 설정을 활성화해보세요.

     

    게시글 본문 자동링크 사용 설정이 표시되지 않는다면

    글 작성 에디터를 textarea 사용으로 설정하신 후 저장해 보세요.

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기