programing

자동 추가 제거자동 추가 제거문자 그대로의 내용이 없는 페이지(숏 코드 사용)에서

closeapi 2023. 3. 12. 10:50
반응형

자동 추가 제거

문자 그대로의 내용이 없는 페이지(숏 코드 사용)에서

WordPress를 탑재한 웹 사이트를 가지고 있습니다.홈페이지에 쇼트코드만 있는 정적 페이지를 사용하여 콘텐츠를 생성합니다.

이 페이지는 첫 페이지를 정적 페이지로 설정하고 페이지의 _content(); 를 사용하여 이러한 쇼트 코드를 가져옵니다.php. 페이지 내용에는 공백이 없고 쇼트 코드만 있습니다.이렇게 되어 있습니다.

[content-shortcode blah blah][more content-shortcode blah blah]

WordPress가 빈칸을 추가하는 것 이외에는 모두 정상적으로 동작합니다.<p></p>숏코드 코드 앞과 모든 숏코드 코드 끝에 다른 P/P가 있습니다(숏코드 사이에 아무것도 없습니다).

어떻게 하면 제거할 수 있나요?글로벌 wpautop 제거 기능을 비활성화하고 싶지는 않지만, 일부 사용자에게 유용할 수 있기 때문에 홈페이지에 표시되는 첫 번째와 마지막 P만 삭제하고 싶습니다.

몇 가지 시도해 볼 수 있는 것이 있습니다.

포즈할 수 있습니다.wp_autop쇼트 코드 출력 전에 처리되기 때문입니다.

remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 12);

또는 문제에 도움이 되는 기능을 사용합니다.

function cleanup_shortcode_fix($content) {
    $array = array('<p>[' => '[', ']</p>' => ']', ']<br />' => ']', ']<br>' => ']');
    $content = strtr($content, $array);
    return $content;
}

add_filter('the_content', 'cleanup_shortcode_fix');
$string = preg_replace_('/<p>s*</p>/', '', $string);
add_filter('the_content', 'cleanup_shortcode_fix', 1);

이 외에도 다양한 기능이 있습니다.wpautop()투고 내용을 필터링 합니다.force_balance_tags()이는 편집기를 통해 들어오는 불량 HTML의 균형을 맞추기 위해 설계되었습니다.

대부분은 formating.php로 정의되어 있습니다.여기서 소스의 다양한 코드를 확인할 수 있습니다.

이러한 필터의 삭제는, 1 행으로 간단하게 실시할 수 있습니다.

remove_filter('the_content', 'wpautop');

상세한 것에 대하여는, http://codex.wordpress.org/Function_Reference/wpautop 를 참조해 주세요.

아래 링크를 확인하시면 도움이 됩니다.

  1. WordPress 투고에서 <p> 및 <br/> 태그 삭제
  2. 워드프레스의 쇼트코드
  3. wpautop 플러그인 사용 안 함

도움이 되시길 바랍니다.

이것을 시험해 보세요(이 코드를 어디에 붙여 넣습니다).functions.php):

function shortcode_empty_paragraph_fix($content){   
    $array = array (
        '<p>[' => '[', 
        ']</p>' => ']', 
        ']<br />' => ']'
    );

    $content = strtr($content, $array);
    return $content;
}

add_filter('the_content', 'shortcode_empty_paragraph_fix');

제거만 하고 싶기 때문에<p>홈페이지의 태그에 아래 코드를 추가합니다.functions.php파일:

add_action('pre_get_posts', 'remove_autop_from_home');
function remove_autop_from_home() {
    // check to see if we are on the home page
    if(is_home()) {
        remove_filter('the_content', 'wpautop');
    }
}
jQuery('p:empty').remove();

JS를 사용할 수도 있습니다.위의 코드는 페이지에서 빈 p 태그를 모두 제거하는 데 도움이 됩니다.

언급URL : https://stackoverflow.com/questions/15177274/remove-auto-added-p-from-a-page-that-has-no-literal-content-uses-shortcodes

반응형