관리자 로그인 시 승인하기 버튼 추가

현재는 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>";
    	}
    }

    고맙습니다.

  • 답변주신 내용대로 적용해보니 원하는 기능 제대로 구현되었습니다!

    정말 감사합니다 :)

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요