반응형
플러그인 내부에서 is_page()를 사용하려면 어떻게 해야 합니까?
나는 내 플러그인이 특정 페이지에만 스크립트를 등록하기를 원합니다.
예를 들어 플러그인 파일 안에 다음과 같은 내용을 쓰고 싶습니다.
if (is_page()) {
$pageid_current = get_the_ID();
$page_slug = get_post($pageid_current)->post_name;
if ($page_slug == 'articles'){
wp_register_script('myscript', '/someurl/main.js');
}
}
하지만 오류가 납니다.
is_page가 잘못 호출되었습니다.쿼리를 실행하기 전에는 조건부 쿼리 태그가 작동하지 않습니다.그 전에 그들은 항상 거짓으로 돌아옵니다.자세한 내용은 워드프레스의 디버깅을 참조하시기 바랍니다.(이 메시지는 버전 3.1에서 추가되었습니다.)
플러그인 내부에서 특정 페이지에 스크립트를 등록하려면 어떻게 해야 합니까?
is_page()
템플릿 파일 내에서만 작동합니다.
그리고 플러그인 파일 내에서 사용하기 위해서는 액션 훅의 조합과 함께 사용해야 합니다.
이 작업 후크는 WordPress가 로드할 템플릿 페이지를 결정하기 직전에 실행됩니다.
따라서 다음과 같은 토막글이 작동합니다.
add_action( 'template_redirect', 'plugin_is_page' );
function plugin_is_page() {
if ( is_page( 'articles' ) ) {
wp_register_script( 'my-js-handler', '/someurl/main.js', [], '1.0.0', true );
}
}
당신은 사용할 수 있습니다.is_page()
템플릿 리디렉션 후에 다음과 같이 후크를 추가해야 합니다.
add_action('template_redirect','your_function');
function your_function(){
if ( is_page('test') ) {
// do you thing.
}
}
스크립트를 어디서나 작동시키듯 등록해야 합니다.다음과 같이 작업이 완료된 후 등록을 취소할 수 있습니다.
function deregister_my_script() {
if (!is_page('page-d-exemple') ) {
wp_deregister_script( 'custom-script-1' );
}
}
add_action('wp_print_scripts', 'deregister_my_script', 100 );
언급URL : https://stackoverflow.com/questions/22070223/how-can-i-use-is-page-inside-a-plugin
반응형
'source' 카테고리의 다른 글
입력 유형 번호 "숫자 값만" 유효성 검사 (0) | 2023.09.23 |
---|---|
RFC2822 date in moment.js를 변환하려고 할 때 "감각 경고: moment construction back to js Date" (0) | 2023.09.23 |
group_concat을 사용하여 값을 인용하는 방법 (0) | 2023.09.23 |
선택한 드롭다운 목록에서 메타박스 데이터 저장 (0) | 2023.09.23 |
카트 에이잭스와 미니카트에 우커머스 추가 (0) | 2023.09.23 |