안녕하세요! 새해 복 많이 받으시기 바랍니다.
제 홈페이지 특성상 썸네일을 중복되게 사용하는데 (특정 썸네일만 바꿔가면서 사용합니다 대학교 로고)
계속 썸네일로 업로드하여 사용하게되면 리퀘스트만 늘어나는데 하나로 캐시 처럼? 이미 사용했던 썸네일로만 로딩 할수있을까요? url 같은걸로요
늘 감사합니다 .
안녕하세요~^^
KBoard 플러그인에서 게시글 작성 시 썸네일을 등록하지 않으면
기존 다른 게시글에서 썸네일로 등록한 파일을 적용하면 될 듯합니다.
1. /wp-content/plugins/kboard/class/KBContent.class.php 파일에
아래의 코드를 찾아서
public function __get($name){
if(isset($this->row->{$name})){
if(in_array($name, array('title', 'content'))){
if(isset($this->row->status) && $this->row->status == 'pending_approval' && in_array(kboard_mod(), array('list', 'document'))){
if($this->isEditor()){
switch($name){
case 'title': return apply_filters('kboard_pending_approval_title', sprintf(__('[Pending] %s', 'kboard'), $this->row->title), $this); break;
case 'content': return apply_filters('kboard_pending_approval_content', sprintf(__('<p>[Waiting for administrator Approval.]</p>%s', 'kboard'), $this->row->content), $this); break;
}
}
else{
switch($name){
case 'title': return apply_filters('kboard_pending_approval_title', __('[Pending] Waiting for administrator Approval.', 'kboard'), $this); break;
case 'content': return apply_filters('kboard_pending_approval_content', __('[Waiting for administrator Approval.]', 'kboard'), $this); break;
}
}
}
}
return $this->row->{$name};
}
return '';
}
아래의 코드로 교체해보시겠어요?
public function __get($name){
$value = '';
if(isset($this->row->{$name})){
if(in_array($name, array('title', 'content'))){
if(isset($this->row->status) && $this->row->status == 'pending_approval' && in_array(kboard_mod(), array('list', 'document'))){
if($this->isEditor()){
switch($name){
case 'title': return apply_filters('kboard_pending_approval_title', sprintf(__('[Pending] %s', 'kboard'), $this->row->title), $this); break;
case 'content': return apply_filters('kboard_pending_approval_content', sprintf(__('<p>[Waiting for administrator Approval.]</p>%s', 'kboard'), $this->row->content), $this); break;
}
}
else{
switch($name){
case 'title': return apply_filters('kboard_pending_approval_title', __('[Pending] Waiting for administrator Approval.', 'kboard'), $this); break;
case 'content': return apply_filters('kboard_pending_approval_content', __('[Waiting for administrator Approval.]', 'kboard'), $this); break;
}
}
}
}
$value = $this->row->{$name};
}
return apply_filters('kboard_content_value', $value, $name, $this);
}
2. 워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_filter('kboard_content_value', 'my_kboard_content_value', 10, 3);
function my_kboard_content_value($value, $name, $content){
if($name == 'thumbnail_file'){
if(!$value){
$value = '썸네일파일경로';
}
}
return $value;
}
위의 코드에서 썸네일파일경로 부분에는 실제 썸네일 파일 경로로 적용해보시겠어요?
KBoard에서 썸네일은 /wp-content/uploads/kboard_thumbnails 경로를 확인해보시면 됩니다.
예를 들어서, 1번 게시판에서 2019년 2월에 등록한 썸네일 파일로 지정하시려면
썸네일파일경로 부분에 /wp-content/uploads/kboard_thumbnails/1/201902/파일명 이런 식으로 적용해보세요.
위의 코드를 적용하시면 게시글 작성 시 썸네일을 등록하면 등록한 썸네일을 표시하며
썸네일을 등록하지 않는다면 지정한 썸네일 파일을 표시합니다.
고맙습니다.
아그러면 에디터 php 를 수정해서는 워드프레스 미디어에 올린 사진으로 썸네일 등록을 할수 없는걸까요?
그러면 위에 알려주신 방법으로하려면 모든 대학 url 을 등록해야하나요 ㅠㅠ
에디터 php 수정으로 간편하게 워드프레스 미디어에서 따오지 못한다면
케이보드 미디어 첫번쨰 사진을 따오는것처럼 워드프레스 미디어로 본문에 올린 사진 중 첫번쨰를 가져오게도 불가능할까요?
워드프레스 미디어 추가 기능으로 직접 이미지를 선택하시려는 지요?
워드프레스 미디어에 등록된 이미지는 썸네일로 표시되지 않기 때문에
이전 댓글에 안내해드린 kboard_content_value 필터를 활용해주셔야 할 듯합니다.
또한 워드프레스 미디어 추가 버튼은 글쓴이 역할부터 사용할 수 있습니다.
워드프레스에서 글(블로그 포스트) 쓰기가 가능해야 워드프레스 미디어 추가 기능도 사용할 수 있습니다.
누구나 워드프레스 미디어 기능을 사용할 수 있다면,
관리자가 업로드한 파일을 다른 사용자가 지울 수 있으니 각별한 주의가 요구됩니다.
추가로 설명을 드리자면,
KBoard 게시판 플러그인에서 썸네일을 표시할 때 getThumbnail 함수를 활용하고 있습니다.
getThumbnail 함수의 썸네일 이미지 우선순위는 아래와 같습니다.
1. 등록된 썸네일 이미지
2. KBoard 미디어에 등록된 첫 번째 이미지
3. 첨부파일 중 이미지 파일
고맙습니다.
<div class="kboard-attr-row">
<label class="attr-name" for="kboard-input-thumbnail"><?php echo __('Thumbnail', 'kboard')?></label>
<div class="attr-value">
<?php if($content->thumbnail_file):?><?php echo $content->thumbnail_name?> - <a href="<?php echo $url->getDeleteURLWithAttach($content->uid);?>" onclick="return confirm('<?php echo __('Are you sure you want to delete?', 'kboard')?>');"><?php echo __('Delete file', 'kboard')?></a><?php endif?>
<input type="file" id="kboard-input-thumbnail" name="thumbnail">
</div>
</div>
이부분을 수정하면 되는거같은데 어떻게 바꾸면될까요? ㅠㅠ
안녕하세요.
이미지 경로를 워드프레스 미디어 쪽 경로로 적용해주시면 될 듯합니다.
워드프레스 미디어 쪽 파일은 FTP로 접속해서 /wp-content/uploads 폴더를 확인해보시겠어요?
고맙습니다.
감사합니다! 잘되네요! 그냥 간편하게 워드프레스 미디어를 사용하는 방법은 어려울까요?
안녕하세요.
이전 댓글에 안내해드린 코드를 적절히 활용하시면
매번 썸네일을 올리지 않고 기존에 사용한 이미지를 재사용할 수 있습니다.
현재 게시판을 어떻게 사용 중인지는 저희가 알 수는 없지만
제목에서 대학교 이름을 찾아 기존 등록한 썸네일을 활용하시려면
테마 쪽 functions.php 파일에 아래의 코드를 활용해보시겠어요?
add_filter('kboard_content_value', 'my_kboard_content_value', 10, 3);
function my_kboard_content_value($value, $name, $content){
if($name == 'thumbnail_file' && !$value){
if(stripos($content->title, '서울대학교') !== false){
$value = '서울대학교 로고 경로';
}
else if(stripos($content->title, '고려대학교') !== false){
$value = '고려대학교 로고 경로';
}
else if(stripos($content->title, '연세대학교') !== false){
$value = '연세대학교 로고 경로';
}
if(!file_exists(KBOARD_WORDPRESS_ROOT . $value)){
$value = '';
}
}
return $value;
}
위의 코드를 적용하면 게시글 제목에 서울대학교가 포함되어 있고
썸네일이 등록되어 있지 않다면 설정한 서울대학교 로고 경로의 이미지를 표시합니다.
각 경로는 적절히 수정해보시겠어요?
고맙습니다.
기본적으로 게시판 썸네일은 KBoard 쪽에 등록된 이미지만 표시가 가능합니다.
게시글 본문 내용에 이미지 태그를 체크해서 이미지 주소만 추출해서 표시하거나
KBoard 글 작성 페이지에 새로운 입력 필드를 추가해서
워드프레스 미디어 추가로 등록된 이미지의 주소를 게시글에 저장해서 보여주는 등 여러 방법이 있겠지만
수정하시는 데 어려움이 있을 듯합니다.
저희 쪽에서 좀 더 연구해서 해당 기능을 개선해보겠습니다.
고맙습니다.