게시판에 링크 주소 입력시 나타나는 오류

http://hoojinju.com/webhj/comm_notice/?mod=document&pageid=1&uid=661

 

게시판에서 링크하고 싶은 URL을 입력할 때,

홈페이지의 기본 주소 (www.hoojinju.com 또는 www.hooclinic.co.kr) 를 입력하면 정상적으로 적용이 되는데,

하위 주소 (http://hoojinju.com/webhj/comm_notice/?mod=document&pageid=1&uid=656 또는 http://www.hooclinic.co.kr/ad_event.php) 를 입력하면

링크가 다음 텍스트까지 연결되는 오류가 발생합니다.

어떻게 수정할 수 있을까요?

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    새로운 질문이 아닌 이어지는 질문이라면 이전 질문 페이지에만 댓글로 남겨주세요.

     

    추가하신 링크는 어떤 기능으로 올리신 건지요?

    KBoard 플러그인에서 글 작성 에디터를 textarea 사용하시면서

    게시글 본문 자동링크 기능을 이용하신 건지요?

    워드프레스 내장 에디터의 링크 삽입 기능을 이용하신 건지요?

    또는 HTML 태그를 직접 추가하신 건지요?

     

    올려주신 페이지 확인해보면

    주소나 표시되는 쪽에 br< 이러한 문자가 들어가 있습니다.

    실제 추가하신 링크 또는 태그를 에디터의 코드 스니펫 삽입 기능으로 올려주시겠어요?

     

    불필요한 문자가 테마나 다른 플러그인 쪽에서 표시하고 있을 수도 있으니

    잠시 다른 테마로 바꿔서 확인해보시고

    다른 플러그인을 모두 비활성화한 후에도 확인해보시겠어요?

    고맙습니다.

  • 워드프레스 관리자 계정, FTP 접촉 정보 이메일로 보내드렸습니다.

  • 안녕하세요.

    저희 고객지원 쪽 이메일로 보내주신 정보로 확인해보니

    KBoard 플러그인의 문제는 아닙니다.

    테마 쪽 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로 설정되어 있다면 해당 코드는 에러가 발생할 수도 있습니다.

     

    기존의 코드 대신 아래의 코드로 교체해보시겠어요?

    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 사용으로 설정하신 후 저장해 보세요.

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요