한아이디로 글작성시, 멤버uid만 변경이 되질 않습니다ㅠㅠ

add_action('kboard_skin_field_after_title', 'my_kboard_skin_field_after_title2', 10 , 3);
		function my_kboard_skin_field_after_title2($field, $content, $board){
			if(current_user_can('administrator')){ 
				?>
				<div class="kboard-attr-row">
					<label class="attr-name" for="kboard-input-author"><?php echo __('Author', 'kboard')?></label>
					<div class="attr-value">
						<input type="text" id="kboard-input-author" name="member_display" value="<?php
						if($content->member_display){echo $content->member_display;}else{
							$a=wp_get_current_user();
							$usersid=$a->display_name;
				echo $usersid;}?>">
					</div>
				</div>

				<div class="kboard-attr-row">
					<label class="attr-name" for="kboard-input-author"><?php echo __('Author', 'kboard')?></label>
					<div class="attr-value">
						<input type="text" id="kboard-input-author" name="member_uid" value="<?php
						if($content->member_uid){echo $content->member_uid;}else{
							$a=wp_get_current_user();
							$usersid2=$a->ID;
				echo $usersid2;}?>">
					</div>
				</div>

				<div class="kboard-attr-row">
					<label class="attr-name">날짜</label>
					<div class="attr-value"><input type="text" name="date" value="<?php date_default_timezone_set("Asia/Seoul");
					if($content->date){echo $content->date;}else{echo date("YmdHis");}?>"></div>
				</div>
				<?php
			}
		}

1.위 코드는 한아이디로 관리자라면, 닉네임,날짜등을 다르게 해서 글을 쓸수있게 하는것입니다.

근데 디비에서 확인해보니, member_uid만 변경이 안되고 있었드라구요ㅠㅠ

혹시 글쓸때 member_uid도 글을쓸때, 임의로 써서, 변경이 되려면 어떻게해야할까요?

예를들어 1번 아이디가 13을 입력하고 글을써도, member_uid는 1이 됩니다ㅠ

(닉네임과 날짜는 잘 바껴요ㅠ)

 

function my_kboard_comments_field($field_html, $board, $content_uid, $comment_builder){
				if(current_user_can('administrator')){
				?>
				<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="<?php
					if($temporary->member_display){echo $temporary->member_display;}else{
						$a=wp_get_current_user();
						$usersid=$a->display_name;
			echo $usersid;}?>" placeholder="<?php echo __('Author', 'kboard-comments')?>..." required>
				</div>

				<div class="comments-field">
					<label class="comments-field-label" for="comment_member_uid"><?php echo __('사용자UID', 'kboard-comments')?></label>
					<input type="text" id="comment_member_uid" name="member_uid" value="<?php
					if($temporary->member_uid){echo $temporary->member_uid;}else{
						$a=wp_get_current_user();
						$usersid3=$a->ID;
			echo $usersid3;}?>" placeholder="<?php echo __('사용자UID', 'kboard-comments')?>..." required>
				</div>

				<div class="comments-field">
					<label class="comments-field-label" for="comment_date"><?php echo __('작성일', 'kboard-comments')?></label>
					<input type="text" id="comment_date" name="date" value="<?php date_default_timezone_set("Asia/Seoul");
					if($comment->created){echo $comment->created;}else{echo date("YmdHis");}?>" placeholder="<?php echo __('date', 'kboard-comments')?>..." required>
				</div>
			<?php }?>
				<div class="comments-field field-image1">
					<label class="comments-field-label" for="comment_image1_<?php echo $content_uid?>">사진</label>
					<input type="file" id="comment_image1_<?php echo $content_uid?>" name="comment_attach_image1" accept="image/*">
				</div>
				<div class="comments-field field-file1">
					<label class="comments-field-label" for="comment_file1_<?php echo $content_uid?>">첨부파일</label>
					<input type="file" id="comment_file1_<?php echo $content_uid?>" name="comment_attach_file1">
				</div>
				<?php
			}

2.위 코드는 댓글쪽입니다. 댓글을쓸때 관리자는 닉네임,날짜,member_uid를 변경할수있게 하였습니다.

디비를 확인해보니 user_uid라서 name값을 user_uid라고 변경해서도 해봤지만, 역시 댓글도 member_uid가 변경이 되질 않습니다ㅠㅠ

댓글쓸때 닉네임,날짜 그리고 멤버uid까지 변경해서 작성하려면 어떻게해야할까요?ㅠ

(댓글도 글과 마찬가지로, 닉네임과 날짜는 잘 변경되고, 멤버uid만 변경이 안됩니다ㅠ)

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    KBoard 플러그인에서 작성자 uid는 자동으로 현재의 사용자 uid를 입력하고 있습니다.

    만약, 별도의 입력 필드에 입력한 값으로 적용되게 하시려면

    아래의 코드를 활용해보세요.

    add_action('kboard_pre_document_insert', 'kboard_pre_document_insert_20201019', 10, 4);
    function kboard_pre_document_insert_20201019($uid, $board_id, $content, $board){
    	if($board->isAdmin() && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$member_uid = isset($_POST['member_uid']) ? $_POST['member_uid'] : '';
    		if($member_uid){
    			$content->member_uid = $member_uid;
    		}
    	}
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해보세요.

    $board->isAdmin() 코드를 활용하시면 관리자인지 체크하실 수 있습니다.

     

    댓글 쪽에 $temporary 변수와 $comment 변수는 별도로 선언하신 건지요?

    댓글 쪽은 아래의 코드를 추가해서 활용해보시겠어요?

    add_filter('kboard_comments_insert_data', 'kboard_comments_insert_data_20201019', 10, 2);
    function kboard_comments_insert_data_20201019($data, $board_id){
    	$board = new KBoard($board_id);
    	if($board->isAdmin() && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$member_uid = isset($_POST['member_uid']) ? $_POST['member_uid'] : '';
    		if($member_uid){
    			$data['user_uid'] = $member_uid;
    		}
    	}
    	return $data;
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해보세요.

    테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기