안녕하세요.
표가 포함된 글을 게시판에 작성하였습니다. (div 태그를 이용한 표)
그런데 표의 한줄 한줄 마다 공백이 생겨 버립니다.
같은 내용의 코드를 워드프레스 페이지에 붙여넣기 하면 정상적으로 보여집니다.
무슨 문제일까요?
*이곳 확인페이지 에서 보시면 위쪽의 흰색 바탕에 작성된 것은 워드프레스 페이지에 작성된 내용이며 아래쪽에 회색 바탕이 동일한 코드로 작성된 게시판 내용입니다.
어...제가 해당 코드를 functions.php 파일에 적용했을 때는 모든 게시판의 글들이 줄바꿈 제거되어 마치 메모장에서 글이 보여지는 것처럼 보여졌습니다.
그래서 황금히 해당 코드를 삭제했었습니다.
그런데 스레드봇님께서 코드 적용한 이후에는 현재 모든 글들의 줄바꿈이 정상적으로 보여지고 표에서도 <br>태그가 제거되었습니다.
제일 처음 알려주신 코드를 적용한 것 외에 다른 부분은 수정한 것 없는거 맞죠...? (먼가에 홀린 느낌이에요...)
아무튼 문제가 해결되어서 다행입니다.
수고에 감사드립니다~^^
안녕하세요~^^
올려주신 코드에는 이전 댓글에서 안내해드린 코드가 적용되어 있지 않는군요.
추가하셨다가 지우셨는지요?
저희 고객지원 쪽으로 보내주신 정보로 확인해보니
테마의 functions.php 파일에 해당 코드가 적용되어 있지 않아서 새로 추가해두었습니다.
현재는 표 이외에 줄 바꿈 하신 부분은 정상적으로 표시되고 있는 듯합니다.
코드를 적용한 이후에도 문제가 되는 곳이 있다면 어느 곳인지 알려주시겠어요?
고맙습니다.
이메일로 접속정보 보내드렸습니다.
아래는 functions.php 파일에 추가한 코드입니다.
<?php
// Exit if accessed directly
if ( !defined( 'ABSPATH' ) ) exit;
// BEGIN ENQUEUE PARENT ACTION
// AUTO GENERATED - Do not modify or remove comment markers above or below:
// END ENQUEUE PARENT ACTION
add_filter('kboard_content_date', 'my_kboard_content_date', 10, 3);
function my_kboard_content_date($date, $content, $board){
$date = date('Y.m.d', strtotime($content->date));
return $date;
}
function my_login_logo() { ?>
<style type="text/css">
body.login div#login h1 a {
background-image: url(<?php echo get_stylesheet_directory_uri(); ?>/images/site-login-logo.png);
padding-bottom: 1px;
}
</style>
<?php }
add_action( 'login_enqueue_scripts', 'my_login_logo' );
/*메인화면에게시글미리보기길이조정*/
add_shortcode('my_kboard_latest_content_view', 'my_kboard_latest_content_view');
function my_kboard_latest_content_view($args=array()){
global $wpdb;
$board_id = '7'; // 보여주고자 하는 게시판 번호 입력
$result = $wpdb->get_row("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$board_id' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY `date` DESC LIMIT 1");
if($result){
$content = new KBContent();
$content->initWithUID($result->uid);
$url = new KBUrl();
$router = new KBRouter();
$board_url = $router->getContentURL($result->uid);
$content->content = wp_strip_all_tags($content->content);
$content->content = mb_strimwidth($content->content, 0, 250, '...', 'utf-8'); // 100 수치를 조절하시면 길이를 조절할 수 있습니다.
ob_start();
echo '<div class="kboard-title">';
if($content->isNew()){
echo '<span class="kboard-default-new-notify">N</span>';
}
echo '<a href="'.$url->set('uid', $content->uid)->set('mod', 'document')->toStringWithPath($board_url).'"> '.$content->title.'</a></div>';
echo '<div class="kboard-content">'.$content->content.'</div>';
return ob_get_clean();
}
}
/*댓글자동링크적용*/
add_filter('kboard_comments_content', 'my_kboard_comments_content', 10, 3);
function my_kboard_comments_content($comment, $comment_uid, $content_uid){
return preg_replace_callback('#(?i)(http|https)?(://)?(([-\w^@]+\.)+(kr|co.kr|go.kr|net|org|edu|gov|me|com|co+)(?:/[^,\s]*|))#', 'kboard_comment_autolink_prependHTTP', $comment);
}
function kboard_comment_autolink_prependHTTP($m){
$mStr = $m[1].$m[2].$m[3];
if(preg_match('#([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#', $mStr)){
return "<a href=\"mailto:".$m[2].$m[3]."\" target=\"_blank\">".$m[1].$m[2].$m[3]."</a>";
}
else{
$http = (!preg_match("#(https://)#", $mStr)) ? 'http://' : 'https://';
return "<a href=\"".$http.$m[3]."\" target=\"_blank\">".$m[1].$m[2].$m[3]."</a>";
}
}
/*최신글미리보기답글표시*/
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
function my_kboard_list_where($where, $board_id, $content_list){
if($content_list->is_latest && in_array($board_id, array('2', '3', '4', '5', '6', '7'))){
if($content_list->category1){
$where = "`board_id`='{$board_id}' AND `category1`='{$content_list->category1}' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')";
}
else{
$where = "`board_id`='{$board_id}' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')";
}
}
return $where;
}
/*특정글new표시길게*/
add_filter('kboard_content_is_new', 'my_kboard_content_is_new', 10, 2);
function my_kboard_content_is_new($is_new, $content){
if(in_array($content->uid, array(''))){ // 'uid번호'여러개일때는쉼표로구분함
$is_new = true;
}
return $is_new;
}
/*로그인사용자일때작성자입력필드표시시작*/
add_action('init', 'kboard_comments_field_reshape');
function kboard_comments_field_reshape(){
if(is_user_logged_in()){
// 기존 댓글 입력 필드의 출력을 삭제합니다.
remove_action('kboard_comments_field', 'kboard_comments_field', 10, 4);
// 새로운 댓글 입력 필드를 출력합니다.
add_action('kboard_comments_field', 'my_kboard_comments_field', 10, 4);
}
}
function my_kboard_comments_field($field_html, $board, $content_uid, $comment_builder){
?>
<div class="comments-field">
<label class="comments-field-label" for="comment_member_display"><?php echo __('Author', 'kboard-comments')?></label>
<input type="text" id="comment_member_display" name="member_display" value="" placeholder="<?php echo __('Author', 'kboard-comments')?>..." required>
</div>
<?php
}
/*새글과댓글알림기능추가*/
add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 3);
function my_kboard_comments_insert($comment_uid, $content_uid, $board){
$comment = new KBComment();
$comment->initWithUID($comment_uid);
if(!$board->isAdmin()){
if(!class_exists('KBMail')){
include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
}
$url = new KBUrl();
$mail = new KBMail();
$mail->to = explode(',', $board->meta->latest_alerts);
$mail->title = "댓글이 등록 되었습니다.";
$mail->content = $comment->content;
$mail->url = $url->getDocumentRedirect($content_uid);
$mail->url_name = '페이지로 이동';
$mail->send();
}
}
/*관리자에게만 아이피 표시*/
add_filter('kboard_document_add_option_value_field_data', 'my_kboard_document_add_option_value_field_data', 10, 3);
function my_kboard_document_add_option_value_field_data($field, $content, $board){
if(isset($field['meta_key']) && $field['meta_key'] == 'ip' && !$board->isAdmin()){
return array();
}
return $field;
}
/*승인대기 목록에서 안보이게*/
add_filter('kboard_list_where', 'my_kboard_list_where1', 10, 3);
function my_kboard_list_where1($where, $board_id, $content_list){
if(in_array($board_id, array('2', '3', '4', '5', '6', '7', '8', '9', '10'))){
$where .= "AND (`status`='' OR `status` IS NULL)";
}
return $where;
}
KBoard 플러그인에서 글 작성 에디터는 워드프레스의 에디터를 사용하고 있지만
게시글 본문 페이지에서 표시하는 방식이 조금 다를 수도 있습니다.
테마 쪽 functions.php 파일에 추가하신 코드도 올려주시겠어요?
저희 고객지원 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다.
테마나 다른 플러그인 등의 문제라면 저희 쪽에서 도움을 드리기 어려울 수도 있습니다.
고맙습니다.
반복 질문 죄송합니다만....
위의 코드를 functions.php 파일에 추가했더니 모든 게시글에 적용된 줄바꿈이 전부 다 사라졌습니다 ㅠㅠ <div>로 감싸져 있지 않은 모든 게시물의 글이 줄바꿈이 사라지는 것은 설명해주신 내용과 다른 결과라서 당황스럽습니다 ㅠㅠ
KBoard 게시판의 글쓰기 에디터는 워드프레스 에디터가 그대로 적용되는 것으로 알고있는데요...왜 워드프레스 페이지 작성에서 코드를 삽입하면 정상적으로 보여지는데 KBoard 게시판에 코드를 삽입하면 다르게 보이는지 모르겠습니다 ㅠㅠ
안내해드린 코드는 KBoard 게시글 본문에서
<div> 태그 사이에 <br> 태그가 있다면 지워주는 코드입니다.
말씀하신 표 이외 줄바꿈 한 곳이 <div> 태그로 감싸져 있다면 <br> 태그가 지워집니다.
해당 코드는 KBoard 플러그인에도 적용이 되어 있으며
기존에는 <table><thead><tfoot><tbody><th><tr><td> 태그에만 적용되어 있기 때문에
이전 댓글에 안내해드린 코드는 <div> 태그도 추가한 코드입니다.
고맙습니다.
답변 감사합니다~!
그런데 제가 알려주신 코드를 이해하지 못해 질문을 다시 드립니다.
위에 알려주신 코드가 혹기 <br>태그를 강제로 없애는 코드인지요? 적용했더니 표에서는 원하는 결과가 나와서 다행인데 표 이외에 줄바꿈한 곳이 모두 줄바꿈 제거 되었습니다.
안녕하세요~^^
추가하신 <div> 태그에 줄바꿈이 있어서 <br> 태그가 추가된 듯합니다.
임시방편으로 워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_filter('kboard_content_paragraph_breaks', 'my_kboard_content_paragraph_breaks', 10, 2);
function my_kboard_content_paragraph_breaks($content, $board_builder){
$content = preg_replace("/(<(|\/)(div).*>)(<br \/>)/", "\$1", $content);
return $content;
}
고맙습니다.