관리 페이지 내의 do_shortcode ()


14

짧은 코드가있는 몇 가지 플러그인을 사용하고 있습니다 ...하지만 콘텐츠에 대한 공개 페이지를 만드는 대신 관리자를 사용하여 새 페이지를 만들었 add_menu_page으며이 do_shortcode()컨텍스트 내 에서 활용하는 방법을 알아야합니다 .

그대로, 모든 기능은 문자열을 뱉어냅니다. 단축 코드 API를 관리자 페이지에서 사용할 수 없기 때문이라고 가정합니다.

이 문제를 어떻게 해결합니까? WP 관리자 내에서 단축 코드를 사용하는 방법을 설명하거나 가능한 경우 설명서를 찾을 수 없습니다.


특히 WP 관리자 내에서 WooCommerce 단축 코드를 사용하려고합니다. 플러그인이 계정 / 사용자 관리를 위해 WP 백엔드를 사용하지 않는다는 사실이 싫습니다.


누구든지 와서 "나는 어떤 연구도하지 않았다"고 결정하고 의견없이 부정적인 점수를 주었다는 것은 매우 도움이되지 않는다.
dcolumbus

1
짧은 코드가 프론트 엔드 컨텐츠 용이라고 말할 수 있다고 생각합니다 ... 다른 플러그인을 사용하여 자체 플러그인 관리자 페이지의 컨텐츠를 생성하려고합니까?
Damien

@dcolumbus 동의합니다. 나는 최근에 보았던 것보다 확실히 더 많은 가짜 다운 보트를 최근에 보았습니다. IMO 이것은 정직하고 (굉장히 멋진) 질문이므로 현재 답변에 찌르고 있습니다.)
TheDeadMedic

당신이 관리자 페이지를 만든 경우 당신은 출력을 지정할 수 있습니다 - 왜 당신이 사용하고자 / 필요합니까 do_shortcode(). 예를 들어 줄 수 있습니까?
Stephen Harris

특히 WooCommerce 단축 코드를 사용하려고합니다. 사용자 관리 및 계정 관리 페이지
dcolumbus

답변:


10

호출하는 대신 do_shortcode()단축 코드와 관련된 함수를 호출하면됩니다.

[example]단축 코드 처리기로 이름이 지정된 단축 코드 와 기능이 등록되어 있습니다.

function example_shortcode( $atts = array(), $content = '' )
{
    extract( 
            shortcode_atts( 
            array (
            'before' => '',
            'after' => '',
            ), 
            $atts 
       )
   );

    return $before . $content . $after;
}
add_shortcode( 'example', 'example_shortcode' );

관리자 페이지에서 함수를 호출하면됩니다.

echo example_shortcode( 
    array ( 'before' => 'This ', 'after' => '!' ), 
    'works' 
);

출력 : This works!.

보다 빠르고 안정적 do_shortcode()입니다.


1
나는 이것을 생각하지 않았다! 그런 다음 다시 관리자에게 어떤 이유로 든 단축 코드를 사용하지 않았으며 조사 할 변명도 없었습니다.)
TheDeadMedic

나는 왜 이것에 대해 생각하지 않았는지 전혀 모른다 ... 나는 그것을 시도하고 다시보고 할 것이다!
dcolumbus

이것에 대한 한 가지 단점은 플러그인 작성자가 앞으로 단축 코드의 콜백 함수를 리팩터링하면 중단된다는 것입니다. 단축 코드 자체의 변경 사항은 이전 버전과 호환 될 수 있지만 플러그인의 내부 함수 이름이 될 가능성은 적습니다.
Ian Dunn

2

단축 코드 API 관리자 사용할 수 있지만 출력은 해당 단축 코드 태그에 따라 다릅니다.

내장 기능은 [caption]예상대로 작동하지만 [embed]작동하지 않습니다 (임 베디 API가 지연 코드를 "지연로드"하는 방식 때문이며 the_content필터를 실행할 필터에 따라 기술적으로 단축 코드 API의 결함이 아닙니다).

결론 : 태그 등록 방법 및시기와 실행시 수행 할 사항 / 예정에 전적으로 달려 있습니다.

@dcolumbus 귀하의 경우 어떤 태그에 대해 이야기하고 있습니까?


1
또한 일부 태그는 get_the_ID()게시물 ID를 반환 할 것으로 예상 됩니다.
Stephen Harris
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.