問題描述

嘿,我只是想防止在我的 wordpress 帖子中建立空的段落。當嘗試手動空間內容時,會發生這種情況。

我不知道為什麼這不會生效?

/*Remove empty paragraph tags from the_content*/
function removeEmptyParagraphs($content) {

    /*$pattern = "/<p[^>]*></p[^>]*>/";
    $content = preg_replace($pattern, '', $content);*/
    $content = str_replace("<p></p>","",$content);
    return $content;
}

add_filter('the_content', 'removeEmptyParagraphs');

編輯/更新:

好像是這樣的問題:

function qanda($content) {

    // filters for [q=some question] and [a=some answer]
    // wraps it inside of <div class="qanda"><div class="question"> </div><div class="answer"> </div></div>
    $content = preg_replace('/[q=(.+?)].+?[a=(.+?)]/is', '<div class="qanda"><div class="question">$1</div><div class="answer">$2</div></div>', $content);

    return $content;
}

add_filter('the_content', 'qanda');

我自己做了這個功能來過濾我的帖子和頁面中的一種短碼模式。即使在後臺,這個職位完全沒有段落和不必要的間隔,結果如下所示:

<div class="entry">

    <p></p>
    <div class="qanda">...</div>
    <p></p>
    <p></p>
    <div class="qanda">...</div>
    <p></p>
    <p></p>
    <div class="qanda">...</div>

</div>

任何想法,這個空 p 來自哪裡?

最佳解決方案

WordPress 將自動插入<p></p> 標籤,該標籤在帖子或頁面中分隔內容中斷。如果由於某種原因想要或需要刪除這些,可以使用以下任一程式碼段。

要完全停用 wpautop 過濾器,可以使用:

remove_filter('the_content', 'wpautop');

如果您仍然希望此功能可以嘗試在過濾器中新增以下優先順序值:

add_filter('the_content', 'removeEmptyParagraphs',99999);

次佳解決方案

我有同樣的問題。我只是做了一個… 讓我們說… 不是很美麗的解決方案,但它的工作,迄今為止,這是我唯一的解決方案。我新增了一點 JavaScript 行。它需要 jQuery,但我相信你可以找出沒有。

這是我的小 JS:

$('p:empty').remove();

這對我有用

第三種解決方案

我知道這已經標記為’solved’,但僅供參考,這裡有一個功能,無需新增任何標記,就可以完成所需的功能。只要把它放在你的主題的 functions.php 中:

add_filter('the_content', 'remove_empty_p', 20, 1);
function remove_empty_p($content){
    $content = force_balance_tags($content);
    return preg_replace('#<p>s*+(<brs*/*>)?s*</p>#i', '', $content);
}

這是從這個要點:https://gist.github.com/1668216

第四種方案

您可以執行您的過濾器之前那個討厭的 wpautop 掛鉤和混淆的標記。

add_filter('the_content', 'qanda', 7 );

這樣一來,你已經把它所需要的東西轉換成了它,這在某些情況下有幫助。

第五種方案

只需使用 CSS

p:empty {
  display: none;
}

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。