안녕하세요. 저번 질문에 추가로 질문드립니다. (지난글: https://www.cosmosfarm.com/threads/document/28792)
1. 입력필드 탭이 보이지 않습니다. 플러그인 업뎃이 필요한건가요. (스크린샷 참고 부탁드려요: https://prnt.sc/m3f19c )
2. 입력필드 탭이 추가되었다는 가정하에 추가 필드를 삽입할경우 (스크린샷 참고 부탁드려요: https://prnt.sc/m3f5hb )
a) 추가필드에 특정상품 '링크'를 삽입하고 사용자가 글에서 그 링크를 클릭할경우 바로 외부 상품페이지로 가게 할 수 있나요?
b) 또한, 이미지를 클릭하였을때 그 링크 필드를 trigger해서 그 외부 링크로 가게 만들었으면 좋겠습니다.
안녕하세요~^^
1. KBoard 플러그인에서 입력필드 설정 탭이 표시되지 않는다면
최신 버전으로 업데이트해보시겠어요?
업데이트 방법은 아래의 링크를 참고해보세요.
2. KBoard 플러그인에서 kboard_url_document_uid 필터를 사용하시면
게시글 목록 페이지에서 게시글 클릭 시 이동할 페이지 주소를 변경하실 수 있습니다.
우선, 입력필드 설정 페이지에서 확장 필드인 텍스트/숨김 필드를 만들어주세요.
메타키가 link라는 가정하에 안내해드리겠습니다.
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_filter('kboard_url_document_uid', 'my_kboard_url_document_uid', 10, 3);
function my_kboard_url_document_uid($url, $content_uid, $board){
if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
$content = new KBContent();
$content->initWithUID($content_uid);
if($content->option->link){
$url = $content->option->link;
}
}
return $url;
}
위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해보세요.
3. 말씀하신 이미지는 게시글 본문 페이지를 말씀하시는 건지요?
FTP로 접속해서 /wp-content/plugins/kboard/skin/사용중인스킨/document.php 파일에
아래의 코드를 찾아서
<div class="kboard-wonderful-product-wrap">
<?php if($media_list):?>
<div class="kboard-wonderful-product-image-gallery">
<?php foreach($media_list as $media_item):?>
<div data-thumb="<?php echo kboard_resize($media_item->file_path, 200, 200)?>" data-src="<?php echo kboard_resize($media_item->file_path, 600, 338)?>">
<img src="<?php echo kboard_resize($media_item->file_path, 600, 338)?>" alt="<?php echo esc_attr($media_item->file_name)?>">
</div>
<?php endforeach?>
</div>
<?php else:?>
<div class="kboard-wonderful-product-no-image"></div>
<?php endif?>
<div class="kboard-wonderful-product-option-field">
<?php echo $content->getDocumentOptionsHTML()?>
<?php if($content->isAttached()):?>
<div class="kboard-attach">
<?php foreach($content->getAttachmentList() as $key=>$attach):?>
<button type="button" class="kboard-button-download kboard-wonderful-product-cut-strings" onclick="window.location.href='<?php echo $url->getDownloadURLWithAttach($content->uid, $key)?>'" title="<?php echo sprintf(__('Download %s', 'kboard'), $attach[1])?>"><?php echo $attach[1]?></button>
<?php endforeach?>
</div>
<?php endif?>
</div>
</div>
아래의 코드로 교체해보세요.
<a href="<?php echo $content->option->link?>">
<div class="kboard-wonderful-product-wrap">
<?php if($media_list):?>
<div class="kboard-wonderful-product-image-gallery">
<?php foreach($media_list as $media_item):?>
<div data-thumb="<?php echo kboard_resize($media_item->file_path, 200, 200)?>" data-src="<?php echo kboard_resize($media_item->file_path, 600, 338)?>">
<img src="<?php echo kboard_resize($media_item->file_path, 600, 338)?>" alt="<?php echo esc_attr($media_item->file_name)?>">
</div>
<?php endforeach?>
</div>
<?php else:?>
<div class="kboard-wonderful-product-no-image"></div>
<?php endif?>
<div class="kboard-wonderful-product-option-field">
<?php echo $content->getDocumentOptionsHTML()?>
<?php if($content->isAttached()):?>
<div class="kboard-attach">
<?php foreach($content->getAttachmentList() as $key=>$attach):?>
<button type="button" class="kboard-button-download kboard-wonderful-product-cut-strings" onclick="window.location.href='<?php echo $url->getDownloadURLWithAttach($content->uid, $key)?>'" title="<?php echo sprintf(__('Download %s', 'kboard'), $attach[1])?>"><?php echo $attach[1]?></button>
<?php endforeach?>
</div>
<?php endif?>
</div>
</div>
</a>
고맙습니다.
먼저 친절한 답변 감사드립니다.
위에 답변주신 2번 관련해서, 새로운 필드를 만들고 코드를 입력하였으나 여전히 원더풀 게시판에서 게시글을 눌러도 링크필드에 삽입된 링크로 이동을 하지 않습니다.
meta값은 'link_1'으로 하였고 php코드에서도 그렇게 변경후 맞는 게시판 아이디까지 수정하였습니다. 한번만 다시 봐주실 수 있으세요? 감사드립니다.
참고 게시판 페이지: https://www.yellow-friday.com/super-sale/?uid=274&mod=document&pageid=1
안녕하세요.
올려주신 페이지 확인해보니 게시판 id는 12입니다.
이전 댓글에 안내해드린 코드 중에서
$content->option->link 부분을 $content->option->link_1 로 교체해주셨는지요?
실제 적용하신 코드를 에디터의 코드 스니펫 삽입 기능으로 올려주시겠어요?
고맙습니다.
이제 되네요!
혹시 원더풀 게시판 - "최신글 모아보기" 에서 url로 바로가는 방법도 알려주실 수 있으세요?
친절한 답변 감사드립니니다.
안녕하세요.
최신글 모아보기에도 적용하시려면
기존의 코드를 아래의 코드로 교체해보시겠어요?
add_filter('kboard_url_document_uid', 'my_kboard_url_document_uid', 10, 3);
function my_kboard_url_document_uid($url, $content_uid, $board){
$content = new KBContent();
$content->initWithUID($content_uid);
$board = $content->board;
if($board->id == '1' && $content->option->link_1){
$url = $content->option->link_1;
}
return $url;
}
위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.
고맙습니다.
너무 너무 감사드립니다 ~ 고민하던 부분이 해결되었네요.
혹시 같은 페이지에서 열리지 않고 *** 새창 *** 에서 열리게 할 수 있을가요?
게시판과 최신글모음에서의 코드 둘 다 부탁드릴께요. ^^ 감사합니다.
안녕하세요.
게시글 클릭 시 새창으로 표시하시려면
FTP로 접속해서 /wp-content/plugins/kboard/skin/사용중인스킨/list.php 파일에
아래의 코드를 모두 찾아서
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>" title="<?php echo esc_attr($content->title)?>">
아래의 코드로 모두 교체해보세요.
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>" title="<?php echo esc_attr($content->title)?>" target="_blank">
/wp-content/plugins/kboard/skin/사용중인스킨/latest.php 파일에
아래의 코드를 모두 찾아서
<a href="<?php echo $url->set('uid', $content->uid)->set('mod', 'document')->toStringWithPath($board_url)?>" title="<?php echo esc_attr($content->title)?>" target="_blank">
아래의 코드로 모두 교체해보세요.
<a href="<?php echo $url->set('uid', $content->uid)->set('mod', 'document')->toStringWithPath($board_url)?>" title="<?php echo esc_attr($content->title)?>">
추가하신 link_1 입력 필드에 값이 있을 때만 새창으로 표시하시려면
안내해드린 코드 중에서 target="_blank" 부분을
아래의 코드로 모두 교체하신 후 적용해보시겠어요?
<?php if($content->option->link_1):?> target="_blank"<?php endif?>
고맙습니다.