IT

빈칸을 제거하다빈칸을 제거하다php functon을 통해 wordpress 쇼트 코드에서 태그 생성

itgroup 2023. 3. 14. 21:34
반응형

빈칸을 제거하다

php functon을 통해 wordpress 쇼트 코드에서 태그 생성

제거할 php 함수(non-jQuery 또는 wpautop 수정) 접근 방식을 찾고 있습니다.<p></p>워드프레스 내에서.

시도했지만 작동하지 않습니다.

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

이 코드를 삽입해 보십시오.functions.php파일:

remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop', 99 );
add_filter( 'the_content', 'shortcode_unautop', 100 );

여기에 이미지 설명 입력

add_filter('the_content', 'cleanup_shortcode_fix', 10);

10을 우선순위로 지정하면 효과가 있고, 다른 번호는 사용할 수 없습니다.

오래된 질문이지만 오늘 이 문제를 해결하고 공유하려고 합니다.

저 같은 경우에는 기본적으로 포맷 불량품을 모두 제거하고 싶습니다.<p>그리고.<br>태그가 올바르게 추가되면 쇼트코드의 텍스트 형식이 올바르게 지정됩니다.

/*
 * Half column shortcode
 */
    function custom_shortcode_half_column( $atts, $content = '') {
        $content = custom_filter_shortcode_text($content);
        return '<div class="half-column">'. $content .'</div>';
    }
    add_shortcode( 'half-column', 'custom_shortcode_half_column' );


/*
 * Utility function to deal with the way WordPress auto formats text in a shortcode.
 */
    function custom_filter_shortcode_text($text = '') {
        // Replace all the poorly formatted P tags that WP adds by default.
        $tags = array("<p>", "</p>");
        $text = str_replace($tags, "\n", $text);

        // Remove any BR tags
        $tags = array("<br>", "<br/>", "<br />");
        $text = str_replace($tags, "", $text);

        // Add back in the P and BR tags again, remove empty ones
        return apply_filters('the_content', $text);
    }

이것이 Word Press가 Shortcode $content 파라미터를 해석하는 기본 방식이라고 생각합니다.

regex가 작동할 수 있습니다.

$string=preg_replace_('/<p>\s*</p>/', '', $string);

그것이 모든 것을 대체할 것이다.<p></p>아무것도, 또는 그냥 흰자리가 없는 상태로 만들어 버리기 때문에, 그래서 그들을 제거합니다.

HTML 코드에 regex를 적용할 경우,\r\n먼저 HTML을 사용할 수 있습니다. 정규식이 작동하지 않도록 하기 때문입니다.

필터의 우선순위를 높여야 합니다.

이거면 될 것 같아

add_filter('the_content', 'cleanup_shortcode_fix', 1);

제거할 수 있습니다.

태그 입력

<?php echo $post->post_content; ?>

content() 대신

필요한 것은 jquery와 php를 혼합한 것입니다.그게 유일한 방법이야
일을 잘 하고 있다는 걸 알게 됐어요제 사이트에 튜토리얼이 있는데
사내에서 물건을 보관하기 위해

jQuery:
이미 큐에 넣은 일부 JS 파일에 포함

jQuery(function($){
    $('div#removep > p').filter(function() {
        return $.trim($(this).text()) === '' && $(this).children().length == 0
    })
    .remove()
})

나중에 사용할 수 있는 쇼트 코드:
사용할 수 있습니다.php 또는 포함된 파일

function sght_removep( $atts, $content = null ) {return '<div id="removep">'.do_shortcode($content).'</div>';}
add_shortcode('removep', 'sght_removep');

이제 다음과 같이 구체적인 내용을 정리할 수 있습니다.

[removep]
Some text i write directly in wordpress wysiwyg
<p></p> <-- this would get removed
[/removep]

이 솔루션에는 방법을 알고 있는 사람이 필요하지만, 동작하고 있습니다.
이게 도움이 되길...

언급URL : https://stackoverflow.com/questions/13510131/remove-empty-p-tags-from-wordpress-shortcodes-via-a-php-functon

반응형