[질문] 테마를 사용해서 커스텀 필드를 보여주는 방법

안녕하세요. 워드프레스 13 책을 오늘 사서 보고 있습니다.

커스텀 필드를 만들고 내용을 입력해서 숏코드를 사용해서 보여주는데 까지 읽었는데요. 이 방법이 테마를 변경했을때 영향을 받지 않는다는건 좋지만 이 숏코드와 필드명을 외우지 못하는 사람들(조금 아니가 있는 사람들)은 전혀 사용할수없는 방법 같은데요. 책 목차를 봐서는 판단이 안서서 그러는데 테마의 파일을 변경해서 자동으로 보여주는 방법에 대한것은 이 책안에는 없는건가요?

 

  1. 최진영 댓글:

    안녕하세요. 도서 구매 감사드립니다.

    질문하신 내용을 구분하여 답변드리고자 합니다.

    이 숏코드와 필드명을 외우지 못하는 사람들(조금 아니가 있는 사람들)은 전혀 사용할수없는 방법 같은데요.

    Shortcode는 외워서 사용하는 것입니다. 많을 때, 외우기 어려운 경우가 있으므로 목록으로 보여주는 플러그인도 있습니다. 하지만, 책 내용은 외우지 않아도 되는 방향으로 진행하고 있습니다.

    Custom Field는 한 번 생성 후 선택하여 사용하는 것이 일반적이죠. 보통 워드프레스 기본 커스텀 필드 메타박스(sliding 형태)나 책에서 ACF를 통해 생성한 필드에 의해 도서 콘텐츠 등록 화면에 나타나는 메타박스(sliding 형태)를 보면 알 수 있을 것입니다.

    이 질문의 요지는 도서 콘텐츠를 등록할 때 매번 필드의 shortcode를 입력하여야 하는 것인가! 라는 것으로 생각합니다. 숏코드를 사용해서 보여주는 과정까지 읽으셨다고 하셨는데, 매번 그런 과정을 진행해야 한다면 당연히 비효율적입니다. 그래서 책에는 템플릿 문서 플러그인을 사용하는 것을 058 절 부터 이야기하고 있습니다.

    커스텀 필드의 경우 ACF에서 제공하는 숏코드도 가능하지만, 일반적인 php 코드로 플러그인 ACF에서 제공하는 함수를 사용하여 템플릿 파일에서 표현한다면 간단히 다음과 같습니다. 책 내용의 필드 중 도서가격 필드 ‘bookprice’를 표현한다면….

    <?php the_field('bookprice'); ?>
    

    워드프레스에서 the_meta 함수를 제외하고 특정 필드(bookprice)의 값, 즉 메타 데이터를 표현하기 위해서는 아래와 같은 방법이 있습니다. 변수없이 표현한다면…

    <?php echo get_post_meta( $post->ID, 'bookprice', true ); ?>
    

    ACF 플러그인의 ‘the_field()’함수는 워드프레스의 get_post_meta() 함수의 파라미터(Parameters)와 PHP ‘echo’ 함수까지 포함하는 것과 같습니다.

    전달하고자 하는 것은
    1. UI, 플러그인 환경이든 템플릿 파일을 통한 코딩이든 간에 숏코드, 필드, 함수는 습득하거나 숙지해야 하는 것이며,
    2. (ACF) 플러그인 사용없이 책에 있는 많은 커스텀 필드와 입력 UI(메타 박스)를 직접 코딩하는 것은 매우 비효율적이며,
    3. ACF 플러그인을 사용하였기 때문에 플러그인에서 제공하는 함수(숏코드)를 사용하여 좀 더 간편하게 필드의 데이터를 표현한 것입니다.
    4. 워드프레스 함수를 사용하면 특정 경우에 이점이 있을 수도 있지만, 책의 예제에서는 필요하지 않기 때문에 사용하지 않은 것입니다.


    테마의 파일을 변경해서 자동으로 보여주는 방법에 대한것은 이 책안에는 없는건가요?

    테마 파일을 작업하여 표현하는 방법은 책에서는 안내하고 있지 않습니다. 워드프레스 13의 기준이 ‘가능한 프런트 UI 내에서 구성한다.’는 하나의 방법론임을 서두에서 안내하고 있습니다. 하지만 책에서 사용하는 방법은 테마 템플릿을 통한 표현보다 다소 부족한 부분이 있는 것은 사실입니다. 필드 데이터가 없는 경우, 다양한 조건 (conditional tags) 사용, 루프, 커스텀 쿼리 등을 조합하는 것에 한계가 있습니다.

    많은 정보와 안내에 필드 데이터, 타입, 분류, 아카이브, 루프 등을 템플릿 파일을 직접 편집하여 표현하는 것을 이야기하고 있고, 배경 지식이 있어야 가능하지 않을까 라는 생각을 하는 분들이 있는데 그러한 방법으로만 가능한 것이 아님을 책에서 이야기한 것으로 생각하시면 됩니다.

댓글 입력 기간이 지났습니다.