반응형
쇼트 코드 출력 추가
새 줄 뒤에
페이지에 CSS 스타일 속성을 추가하기 위한 쇼트 코드를 작성하려고 합니다.제 테마의 functions.php에 다음 코드를 추가했습니다.
function add_style( $atts, $content = null ) {
return '<style>' . $content . '</style>';
}
add_shortcode( 'style', 'add_style' );
이 페이지의 편집자에서는 다음과 같이 사용했습니다.
[style]
.image-main{
border:5px solid lightblue;
}
[/style]
렌더링된 페이지의 출력처는 다음과 같습니다.
<style>
<br />
.image-main{<br />
border:5px solid lightblue;<br />
}<br />
</style>
숏코드를 설정하여 삭제하려면 어떻게 해야 합니까?<br />
여러 줄의 콘텐츠가 있을 때?
WordPress가 콘텐츠를 처리하는 기본 순서 때문에 br 태그가 삽입됩니다.wpautop(줄 바꿈을 p 또는 br 태그로 변환하는 함수)은 쇼트 코드가 처리되기 전에 실행됩니다.
솔루션:
wpautop의 실행 우선순위를 변경하여 이전이 아닌 숏코드 처리 후에 실행되도록 합니다.이 기능을 추가합니다.php 파일:
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 12);
이제 쇼트코드 블록 내에 추가 p 태그 또는 br 태그가 추가되지 않습니다.실제로 줄 바꿈은 p 태그 및/또는 br 태그로 자동 변환되지 않습니다.따라서 올바른 줄 바꿈을 p 태그와 br 태그로 변환하려면 다음과 같이 쇼트 코드 함수 내부에서 wpautop을 실행해야 합니다.
function bio_shortcode($atts, $content = null) {
$content = wpautop(trim($content));
return '<div class="bio">' . $content . '</div>';
}
add_shortcode('bio', 'bio_shortcode');
문제의 해결 방법은 remove를 교체하는 것입니다."<br /r>"
사용.str_replace();
function add_style( $atts, $content = null ) {
$pure_content = str_replace("<br />","",$content);
return '<style>' . $pure_content . '</style>';
}
add_shortcode( 'style', 'add_style' );
언급URL : https://stackoverflow.com/questions/32570351/shortcode-output-adding-br-after-new-line
반응형
'it-source' 카테고리의 다른 글
Safari를 통해 허가된 HTTPS 요청이 작동하지 않음 (0) | 2023.02.22 |
---|---|
Spring Security OAuth2와 Spring Social 통합 (0) | 2023.02.18 |
Oracle insert(존재하지 않는 경우) 문 (0) | 2023.02.16 |
'formGroup'은 'form'의 알려진 속성이 아니므로 바인딩할 수 없습니다. (0) | 2023.02.16 |
각도 구성 요소: 템플릿 바꾸기 옵션이 없습니까? (0) | 2023.02.16 |