안녕하세요. 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 이런 식으로 적용하려던 게 아니신지요?
본문 내용과 올려주신 댓글의 코드 내용이 다른 듯합니다.
좀 더 구체적인 내용을 설명해주시겠어요?
고맙습니다.