테스트 사이트 - 개발 중인 베타 버전입니다

그누커머스 여분필드 채택완료

그누그누1 9년 전 조회 8,897

안녕하세요

답변내용처럼 해도 잘 안돼서 다른방법으로 해봤는데도 잘 안되네요.

여분필드 이용해서 게시물 작성, 여분필드 내용을 본문에서 볼수있게 할려고 합니다.

 

테마 funtions.php에 아래 추가했구요

</p><p>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 ); //메타데이터를 업데이트
//에러나서 } 삭제했습니다.</p><p>

 

view.skin.php에는

6번째줄에

</p><p><?php
if (!defined("ABSPATH")) exit; // 개별 페이지 접근 불가</p><p>wp_enqueue_script( $bo_table.'-view-skin-js', $board_skin_url.'/js/view.skin.js' );
?>
<?php
//메타 데이터 초기화
$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 
);</p><p>$input_posts = wp_parse_args(get_metadata(GCBOARD_META_TYPE, $wr_id, 'etc_inputs', true ), $input_posts);</p><p>extract( $input_posts ); </p><p>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 >";
?></p><p><!-- 게시물 읽기 시작 { --></p><p>

그리고 149번째줄에 <?php echo $input_posts[$i]['wr_1']; ?> 를 넣었습니다.

</p><p>        <!-- 본문 내용 시작 { -->
        <div id="bo_v_con"><?php echo $input_posts[$i]['wr_1']; ?><?php echo gc_get_view_thumbnail($view['content'],  $board['bo_image_width']); ?></div>
        <?php //echo $view['rich_content']; // {이미지:0} 과 같은 코드를 사용할 경우 ?>
        <!-- } 본문 내용 끝 --></p><p>

 

write.skin.php에는

</p><pre>//메타 데이터 초기화
$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></pre><pre>
를 넣어서 글쓰는 화면에서 '항목이름'이라는 필드는 보이는 상태 입니다.
본문보기에서 여분필드가 표시되지 않고 있습니다.
도움 부탁드립니다....

 

 

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

답변 1개

채택된 답변
+20 포인트

view 페이지에서 여분필드의 값은

 

<?php echo $view[wr_7] ?> 

 

이렇게 하면 보여집니다. ^^

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그누그누1
9년 전
감사합니다

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

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

로그인