지식 DB

상용 서비스를 위한 진짜 워드프레스 정보

관리자에 의한 포스트 별점 기능: ACF만 있으면 OK

발행:

| 업데이트:

지식

WP스퀘어의 모든 정보는 국내 상용 서비스를 기준으로 작성됩니다.

사용자가 아닌 관리자에 의한 별점만 구현할 경우에는 별도 플러그인 없이 ACF 만으로 처리할 수 있습니다.

1) 별점 필드 만들기

ACF 필드를 이용해 별점 필드를 만듭니다. 단순히 포스트 메타에 별점을 저정하는 용도이기 떄문에 선택하기(dropdown), 라디오(radio) 모두 사용할 수 있습니다. 단 반환 형식은 값만 지정합니다.

선택하기(dropdown) 필드를 사용한 예

3) 별점 보여주기

숫자만 보여줄 경우 ACF 숏코드나 다이나믹 블록을 사용하면 되지만, 이러면 밋밋하기 때 이미지로 보여주는 경우입니다.

① 별점 이미지 업로드

별점을 보여줄 때 사용할 적당한 이미지를 업로드합니다. 크기 제한을 받지 않기 위해서 SVG 형식을 권장합니다. 이미지 위치는

② 숏코드 만들기

아래의 PHP 스니펫을 이용해 별점 이미지를 보여주는 숏코드를 만듭니다. 여기서는 [post_admin_rating]을 사용하겠습니다.

<?php 

// ACF 별점
add_shortcode('post_admin_rating', function(){
    global $post;
    $type_terms = get_terms(array(
        'taxonomy' => 'doc-type',
        'orderby'  => 'menu_order',
        'order' => 'ASC')
    );
    $rating = get_post_meta( $post->ID, 'post_admin_rating' . $taxonomy, true );
    
    $rating = is_null($rating) || empty($rating)? 0 : $rating;
    $width = ($rating * 20) . '%';
    $rating_star = '';
    $break = 0;
    while(true){
        
        if($break >= $rating){
            break;
        }
        $rating_star .= sprintf('<span class="star"></span>');
        $break++;
    }
    $output = sprintf('<div class="wps-star-rating" role="img" aria-label="Rated %1$s out of 5">%2$s</span></div>', $rating, $rating_star);

    return $output;
});
Code language: HTML, XML (xml)
③ 위에 만들어진 숏코드를 원하는 템프릿에 삽입합니다.

태그

글쓴이

Photo of author

메아쿨파

팀과 함께 워드프레스 관련 자문과 개발을 하고 있습니다. 상용 서비스르를 필요로 하는 기업과 스타트업, 높은 수준의 워드프레스를 만들고 싶은 에이전시, WP스퀘어 필진으로 참여하고 싶으신 분은 문의하기로 남겨 주시기 바랍니다.

댓글

Leave a Comment