• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

register_post_type() error

22.02.25 08:55 작성 조회수 149

0

안녕하세요, 어드민과 클라이언트 동시 결제해서 듣고 있습니다.
 
작업환경: VSCode
 
1.
[현상]
register_post_type(post_type:'book', ['public'=>true,]);
에러가 발생합니다.
--> register_post_type('book', ['public'=>true,]);
이렇게 수정하니까 에러가 안 뜨네요.
 
[질문:] 이제 post_type:'book' 이렇게 쓰면 안되는 건가요?
 
 
2.
[현상]
add_action('init', 'mbs_register_post_type');
페이지는 정상적으로 뜨는데 디버그 시 다음과 같은 에러메시지가 뜹니다.
--> Uncaught Error: Call to undefined function add_action()
 
[질문]
디버그 시 에러가 왜 발생하는 건가요?

답변 1

답변을 작성해보세요.

0

안녕하세요. 답변이 많이 늦어 죄송합니다.

1

register_post_type(post_type:'book', ['public'=>true,]);

위와 같이 나오는 것은 PhpStorm의 코드 힌트 기능 덕분입니다. 제가 타자치는 것을 유심히 보시면 post_type:이라는 부분은 타자를 치지 않는 것을 확인하실 수 있을 겁니다. 실제로 제가 타자를 치는 것은, 제대로 작동한다고 하신 register_post_type('book', ['public'=>true,]); 입니다.

그런데 사실, register_post_type(post_type:'book', ['public'=>true,]); 형태의 문법도 PHP 8.0부터는 지원이 됩니다. Named Arguments(이름이 있는 인자값)라고 하죠. 설치하신 PHP 버전이 8.0 이상이었다면 아마 작동했을 것으로 생각됩니다.

2

“디버그시”라는 게 어떤 시점을 말씀하시는 것인지 좀더 구체적으로 설명을 해 주셔야 답을 할 수 있을 것 같습니다.

에러 메시지만 봤을 때는 아직 add_action 함수 정의부를 읽어드리기 전에 add_action을 호출했기 때문에 발생한 에러입니다.

그러나 왜 이런 일이 발생했는지는 디버그를 어떻게 하셨는지를 알아야 제가 답을 할 수 있습니다.

강의를 수강해 주셔서 감사합니다.

추가로 궁금한 게 있으면 언제든 질문해 주세요.