현재는 avtar 스킨을 사용하고 있으며, 작성되는 모든 게시물에 대해서는 관리자 승인 후 게시되도록 설정해놓은 상태입니다.
다만, 현재 게시물 승인을 위해서는 워드프레스 내에서 KBoard --> 전체 게시글로 이동해야 승인할 수 있는 과정을 간결하게 바꾸어 보고 싶습니다.
따라서 관리자가 로그인하고 승인할 글을 클릭하면 그 자리에 바로 "승인하기" 버튼을 추가할 수 있을까요?
감사합니다.
답변주신 내용대로 적용해보니 원하는 기능 제대로 구현되었습니다!
정말 감사합니다 :)
안녕하세요~^^
승인할 글에 버튼을 추가하시려면 아래의 과정이 필요합니다.
wp-content/plugins/kboard/skin/avatar/document.php 파일에서 아래의 코드를 찾아서
<div class="right">
<a href="<?php echo esc_url($url->getContentEditor($content->uid))?>" class="kboard-default-button-small"><?php echo __('Edit', 'kboard')?></a>
<a href="<?php echo esc_url($url->getContentRemove($content->uid))?>" class="kboard-default-button-small" onclick="return confirm('<?php echo __('Are you sure you want to delete?', 'kboard')?>');"><?php echo __('Delete', 'kboard')?></a>
</div>
아래의 코드로 변경해주세요.
<div class="right">
<?php if(is_super_admin() && $content->previous_status == 'pending_approval'):?>
<a href="<?php global $post; echo esc_url(add_query_arg(array('kboard_content'=>'publish', 'uid'=>$content->uid, 'post_id'=>$post->ID), get_permalink()))?>" onclick="return confirm('승인하시겠습니까?');" class="kboard-default-button-small"><?php echo __('승인하기', 'kboard')?></a>
<?php endif?>
<a href="<?php echo esc_url($url->getContentEditor($content->uid))?>" class="kboard-default-button-small"><?php echo __('Edit', 'kboard')?></a>
<a href="<?php echo esc_url($url->getContentRemove($content->uid))?>" class="kboard-default-button-small" onclick="return confirm('<?php echo __('Are you sure you want to delete?', 'kboard')?>');"><?php echo __('Delete', 'kboard')?></a>
</div>
위 코드를 추가 후 아래코드를 테마의 functions.php 파일 하단에 추가해주세요.
add_action('template_redirect', 'kboard_content_publish_210817');
function kboard_content_publish_210817(){
if(isset($_GET['kboard_content']) && $_GET['kboard_content'] == 'publish'){
global $wpdb;
$uid = isset($_GET['uid']) ? sanitize_text_field($_GET['uid']) : '';
$post_id = isset($_GET['post_id']) ? sanitize_text_field($_GET['post_id']) : '';
$table = "{$wpdb->prefix}kboard_board_content";
$data = ['status' => ''];
$where = ['uid' => $uid];
$update = $wpdb->update($table, $data, $where);
if($update){
echo "<script>alert('승인되었습니다.');</script>";
}
else{
echo "<script>alert('오류가 발생했습니다.');</script>";
}
echo "<script>window.location.href = '".add_query_arg(array('uid'=>$uid, 'mod'=>'document'), get_permalink("{$post_id}"))."'</script>";
}
}
고맙습니다.