그누프레스에 필드를 하나 추가하려면... 채택완료
답변 2개
현재 그누프레스의 기능이 포함된 그누커머스가 출시되어 그누프레스의 개발을 중단한 상태입니다.
( 큰 문제가 발견되었을때만 업데이트 할것입니다. )
그누프레스에서 여분필드를 추가하려면, 메타 데이터를 이용하면 됩니다.
메타데이터를 등록하는 방법
functions.php 에 아래 코드를 추가합니다.
</p><p>add_action('write_update_metadata', 'write_custom_meta_hook', 10, 2); //글을 쓰거나 글을 수정할때 쓰는 hook </p><p> </p><p>function <span style="font-size: 14.6667px;">write_custom_meta_hook</span>($wr_id, $w){</p><p> if( $w == '' ){ //글 입력</p><p> } else if ($w == 'u') { //글 수정</p><p> }</p><p> </p><p> //메타데이터</p><p> $etc_array = array();</p><p> </p><p> $input_posts = array(</p><p> 'wr_1', //여분필드1</p><p> <span style="font-size: 14.6667px; line-height: 1.5;">'wr_2', //여분필드2</span></p><p style="margin-left: 40px;"><span style="font-size: 14.6667px;">'wr_3', //여분필드3</span><span style="font-size: 14.6667px; line-height: 1.5;"> </span></p><p style="margin-left: 40px;"><span style="font-size: 14.6667px;">'wr_4', //여분필드4</span><span style="font-size: 14.6667px;"> </span></p><p style="margin-left: 40px;"><span style="font-size: 14.6667px;">'wr_5', //여분필드5</span><span style="font-size: 14.6667px;"> </span></p><p style="margin-left: 40px;"><span style="font-size: 14.6667px;">'wr_6', //여분필드6</span><span style="font-size: 14.6667px;"> </span></p><p style="margin-left: 40px;"><span style="font-size: 14.6667px;">'wr_7', //여분필드7</span><span style="font-size: 14.6667px;"> </span></p><p style="margin-left: 40px;"><span style="font-size: 14.6667px;">'wr_8', //여분필드8</span><span style="font-size: 14.6667px;"> </span></p><p> );</p><p> </p><p> foreach( $input_posts as $p ){</p><p> $etc_array[$p] = isset($_POST[$p]) ? sanitize_text_field($_POST[$p]) : '';</p><p> }</p><p> </p><p> update_metadata( G5_META_TYPE, $wr_id, 'etc_inputs', $etc_array ); //메타데이터를 업데이트</p><p>}</p><p>
여분필드의 값을 가져오려면 아래와 같이 사용합니다.
어쩔수 없이 write.skin.php 나 view.skin.php 파일을 수정해야 합니다.
</p><p>//메타 데이터 초기화</p><p style="font-size: 14.6667px;"> $input_posts = array(</p><p style="font-size: 14.6667px;"> 'wr_1', //여분필드1</p><p style="font-size: 14.6667px;"> <span style="font-size: 14.6667px; line-height: 1.5;">'wr_2', //여분필드2</span></p><p style="margin-left: 40px; font-size: 14.6667px;"><span style="font-size: 14.6667px;">'wr_3', //여분필드3</span><span style="font-size: 14.6667px; line-height: 1.5;"> </span></p><p style="margin-left: 40px; font-size: 14.6667px;"><span style="font-size: 14.6667px;">'wr_4', //여분필드4</span><span style="font-size: 14.6667px;"> </span></p><p style="margin-left: 40px; font-size: 14.6667px;"><span style="font-size: 14.6667px;">'wr_5', //여분필드5</span><span style="font-size: 14.6667px;"> </span></p><p style="margin-left: 40px; font-size: 14.6667px;"><span style="font-size: 14.6667px;">'wr_6', //여분필드6</span><span style="font-size: 14.6667px;"> </span></p><p style="margin-left: 40px; font-size: 14.6667px;"><span style="font-size: 14.6667px;">'wr_7', //여분필드7</span><span style="font-size: 14.6667px;"> </span></p><p style="margin-left: 40px; font-size: 14.6667px;"><span style="font-size: 14.6667px;">'wr_8', //여분필드8</span><span style="font-size: 14.6667px;"> </span></p><p style="font-size: 14.6667px;"> );</p><p style="font-size: 14.6667px;"> </p><p><span style="font-size: 14.6667px; line-height: 1.5;">$input_posts</span><span style="font-size: 14.6667px; line-height: 22px;"> = wp_parse_args(</span><span style="line-height: 22px; font-size: 14.6667px;">get_metadata(G5_META_TYPE, $wr_id, 'etc_inputs', true ), </span><span style="font-size: 14.6667px; line-height: 1.5;">$input_posts</span><span style="font-size: 14.6667px;">);</span></p><p><span style="font-size: 14.6667px; line-height: 22px;"> </span></p><p><span style="font-size: 14.6667px;">extract( </span><span style="font-size: 14.6667px; line-height: 1.5;">$input_posts );</span> </p><p><span style="font-size: 14.6667px; line-height: 1.5;"> </span></p><p><span style="font-size: 14.6667px; line-height: 1.5;">echo $wr_1."<br >";</span></p><p><span style="font-size: 14.6667px;">echo $wr_2."<br >";</span><span style="font-size: 14.6667px; line-height: 1.5;"> </span></p><p><span style="font-size: 14.6667px;">echo $wr_3."<br >";</span><span style="font-size: 14.6667px;"> </span></p><p><span style="font-size: 14.6667px;">echo $wr_4."<br >";</span><span style="font-size: 14.6667px;"> </span></p><p><span style="font-size: 14.6667px;">echo $wr_5."<br >";</span><span style="font-size: 14.6667px;"> </span></p><p><span style="font-size: 14.6667px;">echo $wr_6."<br >";</span><span style="font-size: 14.6667px;"> </span></p><p><span style="font-size: 14.6667px;">echo $wr_7."<br >";</span><span style="font-size: 14.6667px;"> </span></p><p><span style="font-size: 14.6667px;">echo $wr_8."<br >";</span><span style="font-size: 14.6667px;"> </span></p><p><span style="font-size: 14.6667px;">
그누커머스의 게시판에서 여분필드를 추가하는 방법도 그누프레스와 같습니다.
다만 상수명만 변경하시면 됩니다.( G5_META_TYPE 를 GCBOARD_META_TYPE 으로 변경합니다. )
그누커머스 상수명 GCBOARD_META_TYPE
그누프레스 상수명 G5_META_TYPE
현재 그누커머스의 게시판과 그누프레스와 차이점은
테마에서 템플릿을 적용하는 여부에 있습니다.
그누커머스 에서는 아래와 같이 테마의 템플릿에서 스킨을 파일을 오버라이딩( 덮어쓰기 ) 하는 기능이 추가되었습니다.
( http://sir.co.kr/manual/gnucommerce/159">http://sir.co.kr/manual/gnucommerce/159 )
답변에 대한 댓글 6개
write.skin.php 나 view.skin.php 에서 가져오는 방법과 같습니다.
반복문 돌리는 곳이 있습니다.
for ($i=0, $count_list = count($list); $i<$count_list; $i++) {
아래의 코드를 참고해 주세요.
for ($i=0, $count_list = count($list); $i<$count_list; $i++) {
//메타 데이터 초기화
$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(G5_META_TYPE, $list[$i]['wr_id'], 'etc_inputs', true ), $input_posts);
extract( $input_posts );
echo $wr_1."<br >";
echo $wr_2."<br >";
echo $wr_3."<br >";
echo $wr_4."<br >";
echo $wr_5."<br >";
echo $wr_6."<br >";
echo $wr_7."<br >";
echo $wr_8."<br >";
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
아래와 같이 써야 합니다.
$input_posts['wr_2']
$wr_2
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인