원더플 게시판 입력필드 추가질문

안녕하세요. 저번 질문에 추가로 질문드립니다. (지난글: https://www.cosmosfarm.com/threads/document/28792)


     1. 입력필드 탭이 보이지 않습니다. 플러그인 업뎃이 필요한건가요. (스크린샷 참고 부탁드려요: https://prnt.sc/m3f19c )

     2. 입력필드 탭이 추가되었다는 가정하에 추가 필드를 삽입할경우 (스크린샷 참고 부탁드려요:  https://prnt.sc/m3f5hb )

                 a) 추가필드에 특정상품 '링크'를 삽입하고 사용자가 글에서 그 링크를 클릭할경우 바로 외부 상품페이지로 가게 할 수 있나요? 

                 b) 또한, 이미지를 클릭하였을때 그 링크 필드를 trigger해서 그 외부 링크로 가게 만들었으면 좋겠습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    1. KBoard 플러그인에서 입력필드 설정 탭이 표시되지 않는다면

    최신 버전으로 업데이트해보시겠어요?

    업데이트 방법은 아래의 링크를 참고해보세요.

    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?>

    고맙습니다.

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