플러그인 클래스에서 전자 메일, 전화 번호, Twitter 등 공개 데이터에 대한 간단한 필드를 제공하고 싶습니다. 목록을 확장 할 수 있습니다.
자세한 내용은 플러그인 GitHub의 공개 연락처 데이터 를 참조하십시오.
사용법을 간단하게 유지하기 위해 입력하기 쉬운 짧은 코드를 제공하고 싶습니다.
[public_email]
[public_phone]
[public_something]
유일한 차이점은 두 번째 부분입니다. 단축 코드에 대한 추가 인수는 오류가 발생하기 쉽기 때문에 원하지 않습니다. 따라서 플러그인 클래스의 모든 필드에 대해 하나의 단축 코드 처리기를 등록합니다 .
foreach ( $this->fields as $key => $value )
{
add_shortcode( 'public_' . $key, array( $this, 'shortcode_handler' ) );
}
이제 shortcode_handler()
어떤 단축 코드가 호출되었는지 알아야합니다. 내 질문은 : 어떻게해야합니까?
현재 해결 방법은 다른 기능입니다.
protected function current_shortcode()
{
$backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS );
return $backtrace[3]['args'][0][2];
}
이것은 ... 작동합니다 the_content()
. 그러나 그것은 우아하거나 강력하지 않습니다.
나는 읽었 wp-includes/shortcodes.php
지만 지금은 더 잘하는 법을 볼 수 없습니다.