채택완료

그누커머스 게시판 폼 이용하기?

2016-03-24 (목) 00:56:31 5,718

안녕하세요

게시판 에 폼을 추가 하고 싶습니다.

ex)

1. 지역 [서울|부산|...] 셀렉트 박스

2. 나이 [20대|30대|...] 셀렉트 박스

3. 요청사항 [자유롭게] 텍스트박스

4. 하고싶은말 [자유롭게]

.....

이렇게 작성해서 글쓰기 누르면

위 정보들이 글 내용을 볼때 다 나오게 하고 싶습니다.

예전에 질문드린

meta_table을 이용해야 하는것 같은데

Copy
add_action('write_update_metadata', 'write_custom_meta_hook', 10, 2); //글을 쓰거나 글을 수정할때 쓰는 hook function write_custom_meta_hook($wr_id, $w){if( $w == '' ){ //글 입력} else if ($w == 'u') { //글 수정}//메타데이터$etc_array = array();$input_posts = array('wr_1', //여분필드1'wr_2', //여분필드2'wr_3', //여분필드3 'wr_4', //여분필드4 'wr_5', //여분필드5 'wr_6', //여분필드6 'wr_7', //여분필드7 'wr_8', //여분필드8 );foreach( $input_posts as $p ){$etc_array[$p] = isset($_POST[$p]) ? sanitize_text_field($_POST[$p]) : '';}update_metadata( GCBOARD_META_TYPE, $wr_id, 'etc_inputs', $etc_array ); //메타데이터를 업데이트 }

여기서 wr_1 2 3 이런 여분필드를 어떻게 사용하는지 잘 모르겠습니다. ㅜㅜ

현재 write.skin.php 에

Copy
<td>항목이름</td>   <td><input type='text' name='wr_1' itemname="항목이름" value='<?=$write["wr_1"]?>' > </td>

를 넣고

view.skin.php 에

Copy
<div><?=$view[wr_1]?></div>

를 넣으니 '항목이름'이라는 필드가 생기긴 하는데요 글 작성시 '항목이름'이라는 필드에 넣은 내용이 글볼때는 나오지 않네요 이렇게 하는게 맞는는건지 잘 모르겠습니다

도움 부탁드립니다. 

|

답변 1개 / 댓글 5개

채택된 답변
+20 포인트

write.skin.php 에서는

Copy
//메타 데이터 초기화$input_posts = array('wr_1' => '', //여분필드1'wr_2' => '', //여분필드2'wr_3' => '', //여분필드3 'wr_4' => '', //여분필드4 'wr_5' => '', //여분필드5 'wr_6' => '', //여분필드6 'wr_7' => '', //여분필드7 'wr_8' => '', //여분필드8 ); $input_posts = wp_parse_args(get_metadata(GCBOARD_META_TYPE, $wr_id, 'etc_inputs', true ), $input_posts); <td>항목이름</td>   <td><input type='text' name='wr_1' itemname="항목이름" value="<?php echo $input_posts['wr_1']?>" > </td>

이렇게 가져오고

view.skin.php 에서는 

Copy
//메타 데이터 초기화$input_posts = array('wr_1' => '', //여분필드1'wr_2' => '', //여분필드2'wr_3' => '', //여분필드3 'wr_4' => '', //여분필드4 'wr_5' => '', //여분필드5 'wr_6' => '', //여분필드6 'wr_7' => '', //여분필드7 'wr_8' => '', //여분필드8 ); $input_posts = wp_parse_args(get_metadata(GCBOARD_META_TYPE, $wr_id, 'etc_inputs', true ), $input_posts); <div><?php echo $input_posts['wr_1']?></div>

이렇게 가져오면 됩니다.

답변에 대한 댓글 5개

2016-03-24 (목) 16:37:47
write.skin.php에
처음부분에
[code]
<?php
if (!defined('ABSPATH')) exit; // 개별 페이지 접근 불가
//메타 데이터 초기화
$input_posts = array(
'wr_1' => '', //여분필드1
'wr_2' => '', //여분필드2
'wr_3' => '', //여분필드3
'wr_4' => '', //여분필드4
'wr_5' => '', //여분필드5
'wr_6' => '', //여분필드6
'wr_7' => '', //여분필드7
'wr_8' => '', //여분필드8
);

$input_posts = wp_parse_args(get_metadata(GCBOARD_META_TYPE, $wr_id, 'etc_inputs', true ), $input_posts);
//여기까지넣었습니다

if($board['bo_use_tag']) //게시판 설정에서 태그 기능을 사용한다면
[/code]
120번째줄쯤
[code]
<tr>
<td>항목이름</td>
<td><input type='text' name='wr_1' itemname="항목이름" value="<?php echo $input_posts['wr_1']?>" > </td>
//여기까지 넣었습니다
<tr>
<td class="wr_content" colspan="2">
<label for="wr_content" class="block_label"><strong><?php _e('내용', GC_NAME);?></strong><strong class="sound_only"><?php _e('필수', GC_NAME);?></strong></label>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
[/code]
이렇게 넣고
list.skin.php에는
[code]
<?php
if (!defined('ABSPATH')) exit; // 개별 페이지 접근 불가
//메타 데이터 초기화
$input_posts = array(
'wr_1' => '', //여분필드1
'wr_2' => '', //여분필드2
'wr_3' => '', //여분필드3
'wr_4' => '', //여분필드4
'wr_5' => '', //여분필드5
'wr_6' => '', //여분필드6
'wr_7' => '', //여분필드7
'wr_8' => '', //여분필드8
);
$input_posts = wp_parse_args(get_metadata(GCBOARD_META_TYPE, $wr_id, 'etc_inputs', true ), $input_posts);
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;
[/code]
80번째줄쯤
[code]
<!-- } 게시판 페이지 정보 및 버튼 끝 -->

<form name="fboardlist" id="fboardlist" action="<?php echo $fboardlist_action_url; ?>" onsubmit="return fboardlist_submit(this);" method="post">
<?php wp_nonce_field( 'gc_list', 'gc_nonce_field' ); ?>
<input type="hidden" name="action" value="">
<input type="hidden" name="board_page_id" value="<?php echo $post->ID?>" >
<input type="hidden" name="bo_table" value="<?php echo esc_attr( $bo_table ); ?>">
<input type="hidden" name="sfl" value="<?php echo esc_attr( $sfl ); ?>">
<input type="hidden" name="stx" value="<?php echo esc_attr( $stx ); ?>">
<input type="hidden" name="spt" value="<?php echo esc_attr( $spt ); ?>">
<input type="hidden" name="sca" value="<?php echo esc_attr( $sca ); ?>">
<input type="hidden" name="page" value="<?php echo esc_attr( $page ); ?>">
<input type="hidden" name="sw" value="">


<div><?php echo $input_posts['wr_1']?></div>
//여기에 넣었습니다.


<?php if( $board['bo_use_tag'] ){ //게시판에서 태그기능을 사용한다면... ?>
[/code]
위처럼 했는데 글을 읽을때 나오지 않네요.
ㅜㅜ
write.skin.php 에서는 그렇게 하는게 맞습니다.

list.skin.php 에서는 그렇게 하면 안됩니다.

아래 게시물을 참고해 주세요.

http://sir.kr/qa/110887?stx=metadata&sst=wr_num&unanswered=0&s_tag=%EA%B7%B8%EB%88%84%EC%BB%A4%EB%A8%B8%EC%8A%A4
2016-03-24 (목) 17:40:28
감사합니다.
그런데 list.skin.php 는 글 목록을 볼때 사용하는 건가요?
저는 본문 내용에서 보기를 원하는데 그럼
[code]
//메타 데이터 초기화
$input_posts = array(
'wr_1' => '', //여분필드1
'wr_2' => '', //여분필드2
'wr_3' => '', //여분필드3
'wr_4' => '', //여분필드4
'wr_5' => '', //여분필드5
'wr_6' => '', //여분필드6
'wr_7' => '', //여분필드7
'wr_8' => '', //여분필드8
);

$input_posts = wp_parse_args(get_metadata(GCBOARD_META_TYPE, $wr_id, 'etc_inputs', true ), $input_posts);

<div><?php echo $input_posts['wr_1']?></div>
[/code]
는 view.skin.php에 넣어줘야 하나요?
148번째줄에 아래처럼 넣어봤는데 안되네요
[code]
<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo $view['wr_1'] ?><?php echo gc_get_view_thumbnail($view['content'], $board['bo_image_width']); ?></div>
[/code]
네 view.skin.php 는 그렇게 하는게 맞습니다
2016-03-24 (목) 19:41:24
감사합니다^^

답변을 작성하려면 로그인이 필요합니다.