코스모스팜 스레드

게시판 숏 코드 질문

같은 질문을 반복해서 드려서 죄송합니다.

지금 몇 주 동안 이 문제 때문에 홈페이지를 만드는데 진도가 나가지 않아서 반복해서 질문합니다.

여러 전문가들에게 메일도 보내고 했는데 알 수 있는 방법이 없네요. 

제가 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

    고맙습니다.

  • 정말 감사합니다.^^

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)