같은 질문을 반복해서 드려서 죄송합니다.
지금 몇 주 동안 이 문제 때문에 홈페이지를 만드는데 진도가 나가지 않아서 반복해서 질문합니다.
여러 전문가들에게 메일도 보내고 했는데 알 수 있는 방법이 없네요.
제가 default 스킨 게시판을 사용하고 있는데요
메인화면에 제목 숏코드 , 작성자 숏코드, 날짜 숏코드를
따로 불러서 글자색상과 크기, 위치를 마음대로 정할 수 있게
도와주시면 정말 감사하겠습니다.
안녕하세요~^^
KBoard 플러그인 특정 게시판에서
가장 최신 게시글의 제목, 작성자, 작성일을 표시하는 숏코드를 간단하게 작성해봤습니다.
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_shortcode('my_kboard_latest_content', 'my_kboard_latest_content');
function my_kboard_latest_content($atts=array()){
global $wpdb;
$html = '';
$board_id = isset($atts['id'])&&$atts['id'] ? $atts['id'] : '';
$document = isset($atts['document'])&&$atts['document'] ? $atts['document'] : '';
if($board_id){
$row = $wpdb->get_row("SELECT `{$wpdb->prefix}kboard_board_content`.`uid` FROM `wp_kboard_board_content` WHERE `board_id`='{$board_id}' AND `parent_uid`='0' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY `date` DESC LIMIT 0,1");
$content = new KBContent();
$content->initWithUID($row->uid);
if($document == 'title'){
ob_start();
?>
<span class="my-kboard-latest-content-title"><?php echo $content->title?></span>
<?php
$html = ob_get_clean();
}
else if($document == 'author'){
ob_start();
?>
<span class="my-kboard-latest-content-author"><?php echo $content->member_display?></span>
<?php
$html = ob_get_clean();
}
else if($document == 'date'){
ob_start();
?>
<span class="my-kboard-latest-content-date"><?php echo $content->getDate()?></span>
<?php
$html = ob_get_clean();
}
}
return $html;
}
그 다음, 원하시는 영역에 아래 3개의 숏코드를 적절히 추가해보시겠어요?
[my_kboard_latest_content id=1 document=title]
[my_kboard_latest_content id=1 document=author]
[my_kboard_latest_content id=1 document=date]
위의 코드에서 첫번째 줄은 게시글 제목을 표시하며
두번째 줄은 작성자를 표시하며 세번째 줄은 작성일을 표시합니다.
id 부분은 실제 게시판 id로 적용해보시겠어요?
글자 색상, 크기 등 스타일을 변경하시려면
워드프레스 관리자 -> 외모 -> 사용자 정의하기 -> CSS 입력 필드에
아래의 코드를 추가해보세요.
.my-kboard-latest-content-title { color: blue; font-size: 15px; }
.my-kboard-latest-content-author { color: blue; font-size: 15px; }
.my-kboard-latest-content-date { color: blue; font-size: 15px; }
위의 코드에서 색상 및 사이즈는 적절히 교체해보세요.
고맙습니다.
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단
이게 어디에 있는지 잘 모르겠습니다.
참고로 저는 divi 테마를 사용하고 있습니다.
워드프레스 관리자 -> 외모는 보이시는 지요?
워드프레스가 최신 버전이라면 테마 디자인으로 표시됩니다.
테마 편집기는 테마에 따라 관리자 페이지에 표시되지 않을 수도 있습니다.
또, 플러그인이나 호스팅 쪽 문제로
관리자 페이지에서 테마 쪽 functions.php 파일을 수정할 수 없을 수도 있습니다.
그럴 경우, FTP로 접속해서 /wp-content/themes/사용중인테마/functions.php 파일에 코드를 추가해주세요.
고맙습니다.
정말 정말 감사합니다.^^ 이 은혜를 어찌 값아야 할지..
바쁘실텐데 하나 더 질문합니다.
제목과 작성자와 날짜에 링크를 넣을 수 있을까요?
제목, 작성자, 날짜에 링크를 추가하시려면
기존의 코드 대신 아래의 코드로 교체해보시겠어요?
add_shortcode('my_kboard_latest_content', 'my_kboard_latest_content');
function my_kboard_latest_content($atts=array()){
global $wpdb;
$html = '';
$board_id = isset($atts['id'])&&$atts['id'] ? $atts['id'] : '';
$document = isset($atts['document'])&&$atts['document'] ? $atts['document'] : '';
if($board_id){
$row = $wpdb->get_row("SELECT `{$wpdb->prefix}kboard_board_content`.`uid` FROM `wp_kboard_board_content` WHERE `board_id`='{$board_id}' AND `parent_uid`='0' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY `date` DESC LIMIT 0,1");
$content = new KBContent();
$content->initWithUID($row->uid);
$url = new KBUrl();
$url->is_latest = true;
if($document == 'title'){
ob_start();
?>
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>"><span class="my-kboard-latest-content-title"><?php echo $content->title?></span></a>
<?php
$html = ob_get_clean();
}
else if($document == 'author'){
ob_start();
?>
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>"><span class="my-kboard-latest-content-author"><?php echo $content->member_display?></span></a>
<?php
$html = ob_get_clean();
}
else if($document == 'date'){
ob_start();
?>
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>"><span class="my-kboard-latest-content-date"><?php echo $content->getDate()?></span></a>
<?php
$html = ob_get_clean();
}
}
return $html;
}
새창으로 표시하시려면 <a> 태그에 _blank 속성을 추가해보시겠어요?
아래 관련 링크를 참고해보세요.
https://www.w3schools.com/tags/att_a_target.asp
고맙습니다.
정말 감사합니다.^^