플레이비디오 스킨 유투브 영상 올리기 문의

안녕하세요~

플레이비디오스킨 유투브영상 올리는 것과 관련해 문의드립니다.

https://www.cosmosfarm.com/threads/document/29463

질문 보면 케이보드는 어떤 게시판에서든지 유투브영상에서 "소스코드복사"해서 본문에 붙여넣기 하면 보인다고 하셨는데

<iframe width="640" height="360" src="https://www.youtube.com/embed/CNeNwplE_aw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

위 코드 복사해서 플레이 비디오 스킨 동영상 올리는 창에서 본문에 붙여넣기 했는데

Not found 라고 나와서요... 도움부탁드립니다.

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

    저희 쪽 테스트 서버에서 올려주신 코드로 확인해보니

    게시글 본문 페이지에 유튜브 동영상이 정상적으로 추가되고 있습니다.

    아래 저희 데모 페이지에서도 테스트해보시겠어요?

    https://www.cosmosfarm.com/demo/

     

    Not found 메시지는 어디에 표시되고 있는지요?

    혹시, 게시글 본문 자동링크 기능을 사용하고 있으시다면 비활성화한 상태에서 확인해보시겠어요?

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 기본설정 페이지에서

    글 작성 에디터가 textarea 사용으로 되어있을 때만 게시글 본문 자동링크 사용 설정이 표시됩니다.

    고맙습니다.

  • 감사합니다. 비활성화 선택하니까 소스 붙여넣기 잘 적용되었습니다.

    그런데 현재 영상올릴때

    https://imgur.com/a/8fgeKme  빨간색 칠한 부분

    1. 비메오 ID 입력부분

    2. 자동재생 부분

    이 2가지 기능을 안쓰려고 하는데 어떻게 하면 될까요?

  • 안녕하세요.

    KBoard 플레이 비디오 스킨에서 게시글 작성 시 비메오 ID와 자동재생을 안 보이게 하시려면

    스킨 파일을 수정해보시겠어요?

    FTP로 접속해서 /wp-content/plugins/kboard/skin/사용중인스킨/editor.php 파일에

    아래의 코드가 비메오 ID를 입력하는 부분입니다.

    <div class="kboard-attr-row">
    	<label class="attr-name" for="kboard-input-vimeo-id">비메오 ID</label>
    	<div class="attr-value">
    		<input type="text" id="kboard-input-vimeo-id" name="kboard_option_vimeo_id" value="<?php echo $content->option->vimeo_id?>" placeholder="비메오 비디오 ID...">
    		<input type="hidden" name="kboard_option_vimeo_thumbnail_url" value="<?php echo $content->option->vimeo_thumbnai_url?>">
    		<div class="description">※ 주소 끝에 있는 ID값만 입력해주세요. (예:https://vimeo.com/<span class="text-bold">237551523</span>)</div>
    	</div>
    </div>

    아래의 코드가 자동재생 설정하는 코드입니다.

    <div class="kboard-attr-row">
    	<label class="attr-name" for="kboard-select-autoplay">자동재생</label>
    	<div class="attr-value">
    		<select id="kboard-select-autoplay" name="kboard_option_autoplay">
    			<option value="">OFF</option>
    			<option value="1"<?php if($content->option->autoplay):?> selected<?php endif?>>ON</option>
    		</select>
    		<div class="description">※ 모바일 등 일부 환경에서는 적용되지 않습니다.</div>
    	</div>
    </div>

    위의 코드들을 지워보시겠어요?

    고맙습니다.

  • 안녕하세요.

    https://imgur.com/a/Cafk3UR

    처럼 본문에 문구가 나오게 하려고 입력필드 설정에서 "텍스트 에어리어"를 선택하고 메타키 지정, 기본값에 제목 쓰고, 설명에 첨부미이지의 빨간원으로 친 글씨를 써주었습니다. 출력예제로

    <?php echo $content->option->{'info'}?> 가 나와서 페이지편집에 입력해주었는데 다른데에 위 코드를 넣어주어야 하나요?

     

     

  • KBoard 게시판 플러그인에서 본문 내용에 기본 값을 표시하시는 게 목적이신지요?

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 고급설정 페이지에서

    본문 기본 양식 입력 필드에 원하시는 문구를 입력하신 후 저장해보시겠어요?

    고맙습니다.

  • 감사합니다. 잘 적용했습니다. 추가로 문의드리고 싶은게 있는데

    동영상올릴때 유투브 ID를 입력해서 올리면

    https://imgur.com/a/ue1TuBt 처럼 영상이 맨 위에 오고 그 밑에 제목 등 정보들이 나오는데

    유투브에서 소스코드복사해서 본문에 붙여넣기 하면

    https://imgur.com/a/9IBFN7L 처럼 제목 등 정보가 맨 위에 오고 영상이 그 밑에 오는데

    소스코드 본문에 붙여넣기 해서 동영상 올렸을때 영상이 맨 위에 나오게 하려면 어떻게 하면 될까요?

     

     

  • KBoard 플러그인에서 유튜브, 비메오, 첨부파일로 등록한 동영상은

    본문 페이지 상단에 표시됩니다.

    게시글 본문에 아이프레임이나 숏코드를 입력하셨다면

    게시글 본문이 표시되는 쪽에 표시됩니다.

     

    플레이 비디오 스킨에서 게시글 본문을 표시하는 코드는

    /wp-content/plugins/kboard/skin/사용중인스킨/document.php 파일에

    아래의 코드를 확인하실 수 있습니다.

    <div class="kboard-content" itemprop="description">
    	<div class="content-view">
    		<?php echo $content->content?>
    	</div>
    </div>

    게시글 본문 내용을 상단에 표시하시려면 위의 코드를

    적절한 위치에 추가해보시겠어요?

    고맙습니다.

  • 동영상 썸네일 관련 문의드립니다.

    https://imgur.com/a/xBruZj0

    동영상 올릴때 유투브 ID와 '소스코드복사'해서 붙여넣기 2가지 방법을 사용하려고 하는데

    첨부파일 보시면 유투브 ID를 입력한 동영상은 썸네일 이미지가 자동으로 뜨는데

    본문에 '소스코드 복사'해서 붙여넣기한 동영상 썸네일은 검정색으로 표시되서

    혹시 소스코드 복사한 썸네일도 이미지가 표현될수 있는 방법이 있을까요?

  • 안녕하세요~^^

    KBoard 플러그인 최신 버전(현재 공식 최신 버전 5.4) 기준으로 안내해드리겠습니다.

    워드프레스 관리자 -> 외모(테마 디자인) -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보시겠어요?

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4);
    function my_kboard_document_insert($content_uid, $board_id, $content, $board){
    	if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		// 유튜브
    		preg_match("/\s*[a-zA-Z\/\/:\.]*youtube.com\/embed\/([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i", $content->content, $youtube_match);
    		if(isset($youtube_match[1])&&$youtube_match[1]){
    			$content->option->youtube_thumbnail_url = "https://img.youtube.com/vi/{$youtube_match[1]}/hqdefault.jpg";
    		}
    		
    		// 비메오
    		preg_match("/\s*[a-zA-Z\/\/:\.]*player.vimeo.com\/video\/([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i", $content->content, $vimeo_match);
    		if(isset($vimeo_match[1])&&$vimeo_match[1]){
    			$response = wp_remote_get("http://vimeo.com/api/v2/video/{$vimeo_match[1]}.php" );
    			if(is_array($response)){
    				$body = unserialize($response['body']);
    				$body = $body[0];
    				
    				if(isset($body['thumbnail_large'])&&$body['thumbnail_large']){
    					$content->option->vimeo_thumbnai_url = $body['thumbnail_large'];
    				}
    				else if(isset($body['thumbnail_medium'])&&$body['thumbnail_medium']){
    					$content->option->vimeo_thumbnai_url = $body['thumbnail_medium'];
    				}
    				else if(isset($body['thumbnail_small'])&&$body['thumbnail_small']){
    					$content->option->vimeo_thumbnai_url = $body['thumbnail_small'];
    				}
    			}
    		}
    	}
    }
    
    add_filter('kboard_content_get_thumbnail', 'my_kboard_content_get_thumbnail', 10, 4);
    function my_kboard_content_get_thumbnail($thumbnail_url, $width, $height, $content){
    	$board = $content->getBoard();
    	if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		if($content->option->youtube_thumbnail_url){
    			$thumbnail_url = $content->option->youtube_thumbnail_url;
    		}
    		else if($content->option->vimeo_thumbnai_url){
    			$thumbnail_url = $content->option->vimeo_thumbnai_url;
    		}
    	}
    		
    	return $thumbnail_url;
    }

    위의 코드에서 $board_id == '1' 부분과 $board_id == '1' 부분은 실제 게시판 id로 적용해주세요.

     

    만약 업데이트를 할 수 없는 상황이라면

    FTP로 접속해서 /wp-content/plugins/kboard/class/KBContent.class.php 파일에

    아래의 코드를 찾아서

    public function getThumbnail($width='', $height=''){
    	if(isset($this->thumbnail["{$width}x{$height}"]) && $this->thumbnail["{$width}x{$height}"]){
    		return $this->thumbnail["{$width}x{$height}"];
    	}
    	else if($this->thumbnail_file){
    		if($width && $height){
    			$this->thumbnail["{$width}x{$height}"] = kboard_resize($this->thumbnail_file, $width, $height);
    		}
    		else{
    			$this->thumbnail["{$width}x{$height}"] = site_url($this->thumbnail_file);
    		}
    		return $this->thumbnail["{$width}x{$height}"];
    	}
    	else if($this->uid){
    		$media = new KBContentMedia();
    		$media->content_uid = $this->uid;
    		foreach($media->getList() as $media_item){
    			if(isset($media_item->file_path) && $media_item->file_path){
    				if($width && $height){
    					$this->thumbnail["{$width}x{$height}"] = kboard_resize($media_item->file_path, $width, $height);
    				}
    				else{
    					$this->thumbnail["{$width}x{$height}"] = site_url($media_item->file_path);
    				}
    				return $this->thumbnail["{$width}x{$height}"];
    			}
    		}
    		foreach($this->attach as $attach){
    			$extension = strtolower(pathinfo($attach[0], PATHINFO_EXTENSION));
    			if(in_array($extension, array('gif','jpg','jpeg','png'))){
    				if($width && $height){
    					$this->thumbnail["{$width}x{$height}"] = kboard_resize($attach[0], $width, $height);
    				}
    				else{
    					$this->thumbnail["{$width}x{$height}"] = site_url($attach[0]);
    				}
    				return $this->thumbnail["{$width}x{$height}"];
    			}
    		}
    	}
    	return '';
    }

    아래의 코드로 교체해보시겠어요?

    public function getThumbnail($width='', $height=''){
    	$size = array('width'=>$width, 'height'=>$height);
    	$size = apply_filters('kboard_content_get_thumbnail_size', $size, $this);
    	$width = isset($size['width']) ? intval($size['width']) : '';
    	$height = isset($size['height']) ? intval($size['height']) : '';
    	
    	$thumbnail_url = '';
    	if(isset($this->thumbnail["{$width}x{$height}"]) && $this->thumbnail["{$width}x{$height}"]){
    		$thumbnail_url = $this->thumbnail["{$width}x{$height}"];
    	}
    	else if($this->thumbnail_file){
    		if($width && $height){
    			$this->thumbnail["{$width}x{$height}"] = kboard_resize($this->thumbnail_file, $width, $height);
    		}
    		else{
    			$this->thumbnail["{$width}x{$height}"] = site_url($this->thumbnail_file);
    		}
    		$thumbnail_url = $this->thumbnail["{$width}x{$height}"];
    	}
    	else if($this->uid){
    		$media = new KBContentMedia();
    		$media->content_uid = $this->uid;
    		foreach($media->getList() as $media_item){
    			if($thumbnail_url) break;
    			if(isset($media_item->file_path) && $media_item->file_path){
    				if($width && $height){
    					$this->thumbnail["{$width}x{$height}"] = kboard_resize($media_item->file_path, $width, $height);
    				}
    				else{
    					$this->thumbnail["{$width}x{$height}"] = site_url($media_item->file_path);
    				}
    				$thumbnail_url = $this->thumbnail["{$width}x{$height}"];
    			}
    		}
    		if(!$thumbnail_url){
    			foreach($this->attach as $attach){
    				if($thumbnail_url) break;
    				$extension = strtolower(pathinfo($attach[0], PATHINFO_EXTENSION));
    				if(in_array($extension, array('gif','jpg','jpeg','png'))){
    					if($width && $height){
    						$this->thumbnail["{$width}x{$height}"] = kboard_resize($attach[0], $width, $height);
    					}
    					else{
    						$this->thumbnail["{$width}x{$height}"] = site_url($attach[0]);
    					}
    					$thumbnail_url = $this->thumbnail["{$width}x{$height}"];
    				}
    			}
    		}
    	}
    	return apply_filters('kboard_content_get_thumbnail', $thumbnail_url, $width, $height, $this);
    }

    고맙습니다.

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