prosource

Word press - remove_filter를 한 페이지에만 적용

probook 2023. 10. 25. 23:22
반응형

Word press - remove_filter를 한 페이지에만 적용

한 페이지에 여러 페이지를 삽입하고 있으며(show multiple pages plugin 포함), 한 페이지에는 pp 파일(exec-php 포함)이 포함되어 있습니다.이 포함된 페이지에 대해서만 필터를 비활성화하고 싶습니다.추가하면

remove_filter( 'the_content', 'wpautop' );

제가 포함한 페이지에, 이 페이지 이후에 오는 모든 페이지에는 필터도 없을 것입니다.

페이지에만 필터가 없도록 'the_page' 같은 태그가 있습니까?

도와주셔서 감사합니다.

이것이 오래된 질문이라는 것을 알고 있지만, 좀 더 일반적인 의미(예: 플러그인 출력과 연계되지 않음)에서 이를 수행하고자 하는 사람을 위해 참여하고 이것을 그냥 당신의 것에 추가할 수 있다고 말할 것이라고 생각했습니다.functions.php파일:

add_filter('the_content', 'specific_no_wpautop', 9);
function specific_no_wpautop($content) {
    if (is_page('YOUR PAGE')) { // or whatever other condition you like
        remove_filter( 'the_content', 'wpautop' );
        return $content;
    } else {
        return $content;
    }
}

저는 "한 페이지에 (exec-php가 있는) php 파일이 포함된" 페이지 템플릿을 만들 것을 제안합니다.그런 다음 remove_filter(...) 문 주위에 if 문을 추가합니다.

if (!is_page_template('my-page.php'))
  remove_filter('the_content', 'wpautop');

효과가 있기를. ;P

나도 두 번이나 왕세자처럼 이것이 오래된 질문이라는 것을 깨달았지만, 나는 그의 것을 보고 답을 찾기 위해 이 실에 왔습니다.(자신의 상황에 맞는) 개선을 하기로 결정했고, 다른 사람들에게도 도움이 되길 바라는 마음으로 결과물을 공유하고 있습니다.


wpautop을 기본적으로 설정하거나 해제하고 예외 사항을 나열합니다.

/**
 * Allow or remove wpautop based on criteria
 */
function conditional_wpautop($content) {
    // true  = wpautop is  ON  unless any exceptions are met
    // false = wpautop is  OFF unless any exceptions are met
    $wpautop_on_by_default = true;

    // List exceptions here (each exception should either return true or false)
    $exceptions = array(
        is_page_template('page-example-template.php'),
        is_page('example-page'),
    );

    // Checks to see if any exceptions are met // Returns true or false
    $exception_is_met = in_array(true, $exceptions);

    // Returns the content
    if ($wpautop_on_by_default==$exception_is_met) {
        remove_filter('the_content','wpautop');
        return $content;
    } else {
        return $content;
    }
}
add_filter('the_content', 'conditional_wpautop', 9);

안 되나요?

add_filter('the_content', 'specific_no_wpautop', 9);
function specific_no_wpautop($content) {
    global $post;
    if (is_single('5136') || ('3820')){ // or whatever other condition you like
        remove_filter( 'the_content', 'wpautop' );
        return $content;
    } else {
        return $content;
    }
}

언급URL : https://stackoverflow.com/questions/6285812/wordpress-apply-remove-filter-only-on-one-page

반응형