getDocumentURLWithUID($content->uid) 게시판 별로 다른 링크 받아오는 방법

안녕하세요. K보드 너무 잘 사용하고 있습니다.

A 게시판을 통합 게시판으로 운영하고 있습니다. 유저가 B,C,D 게시판에 쓴 게시글을 모두 취합해서 보여주고 있는데요. 

A 게시판에서 아래 코드

<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>"> 

를 사용할 경우, 게시판 종류에 상관없이 /A/?uid=123... 이 결과값으로 반환됩니다.

이것을, 게시판 종류에 따라 B게시판의 글이라면 /B/?u=123, C게시판의 글이라면 /C/?u=123 로 출력할 수 있을까요?

또는 게시판 종류를 체크하는 함수나 속성이 있을까요? 이것을 사용해서 게시판 종류마다 다른 URL 링크를 반환할 수 있는지 궁금합니다.

감사합니다.

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

    kboard_url_document_uid 필터를 활용하시면

    게시글 목록 페이지에서 게시글 링크를 편집하실 수 있습니다.

    혹시 아래와 같은 코드처럼 적용되길 원하시는 걸까요?

    add_filter('kboard_url_document_uid', 'kboard_url_document_uid_20210610', 10, 3);
    function kboard_url_document_uid_20210610($document_url, $content_uid, $board){
    	if($board->id = '1'){ // 실제 통합 게시판 id로 적용해주세요.
    		$url = new KBUrl();
    		
    		$content = new KBContent();
    		$content->initWithUID($content_uid);
    		$content_board = $content->getBoard();
    		
    		$router = new KBRouter();
    		$board_url = $router->getBoardURL($content_board->id);
    		
    		$document_url = $url->set('u', $content_uid)->toStringWithPath($board_url);
    	}
    	return $document_url;
    }

    위의 코드에서 $board->id = '1' 부분은 실제 통합 게시판 id로 적용해주세요.

    위의 코드처럼 적용하시면 통합 게시판의 게시글 목록 페이지에서

    게시글의 주소가 /B/?u=123, /C/?u=123 이런 식으로 적용됩니다.

     

    테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

    고맙습니다.

  • 빠른 답변 감사드립니다.

    수정 해보겠습니다.

  • 답변주신 내용이 제가 원하던 내용과는 달라서,

    아래 문구로 해결하였습니다. 아마도 더 좋은 방법이 있을 것 같은데요..ㅜㅜ

    혹시 게시판 ID (e.g. 1) 을 받아와서, 1번 게시판이 사용된 URL를 받아오는 것도 가능할까요?

    감사합니다.

    <a href="/<?php 
    						$bid = $content->board_id;
    						switch ($bid) {
                            // csae 1 일 경우, $content->board_id->getURL()..로 echo를 출력할 수 있을까요?
    							case "1": echo "question"; break;
    							case "5": echo "가입인사"; break;
    							case "8": echo "자유게시판"; break;
    							default: echo "user-content"; break;
    						}
    						?>/?keyword=<?php echo $keywords ?>&uid=<?php echo $content->uid?>&mod=document&pageid=<?php echo $pageid ?>"  target="_blank">

     

  • 안녕하세요.

    B게시판의 글의 주소를 /B/?u=123,

    C게시판의 글의 주소를 /C/?u=123 이런 식으로 적용하려던 게 아니신지요?

    본문 내용과 올려주신 댓글의 코드 내용이 다른 듯합니다.

    좀 더 구체적인 내용을 설명해주시겠어요?

    고맙습니다.

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