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 플러그인을 사용해서 코드를 추가할 수 있습니다.
고맙습니다.