問題描述
在 WordPress 文本編輯器中添加返回時,是否有辦法阻止 WordPress 自動插入<br> 標記。
我希望它的行為更像一個代碼編輯器,我可以在這裏編寫代碼,我喜歡什麼,使其易於閲讀。
我在編輯器中使用的代碼是:
[one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third]
我想像這樣構造它,這樣更容易閲讀和編輯:
[one_third]
[team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"]
[custom_button url="#"]For more information[/custom_button]
[/team_member]
[/one_third]
[one_third]
[team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"]
[custom_button url="#"]For more information[/custom_button]
[/team_member]
[/one_third]
[one_third]
[team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"]
[custom_button url="#"]For more information[/custom_button]
[/team_member]
[/one_third]
但是,如果這樣做會有隱形的<br> 標籤添加到帖子內容會弄亂我的頁面的佈局。
最佳解決方案
在許多情況下,shea 的答案並不理想:
-
你不想剝離
<br>, <p>等等的所有東西。你希望它作為 WP 視覺作曲家的默認行為,上述代碼將被刪除 -
在許多情況下,它被認為是 「黑客核心」,因為這正在改變 WP 的默認核心行為 – 例如,這樣的事情不會傳遞給 ThemeForest
我可以看到你主要有與你的問題短碼。解決這個問題的正確方法是不要更改默認行為 (黑客核心),而只是過濾內容。所以只需要添加一個過濾器,並且在一個變量中傳遞你想要過濾的 shotrcodes 數組,就像這樣:
function the_content_filter($content) {
$block = join("|",array("one_third", "team_member"));
$rep = preg_replace("/(<p>)?[($block)(s[^]]+)?](</p>|<br />)?/","[$2$3]",$content);
$rep = preg_replace("/(<p>)?[/($block)](</p>|<br />)?/","[/$2]",$rep);
return $rep;
}
add_filter("the_content", "the_content_filter");
內部的內容將被過濾,因此您的短信號將不含<br>, <p> 等,但其他內容部分 (例如用户創建的 WP 編輯器中的標準文本) 仍然具有 WP 的完整功能。
參考文獻:
次佳解決方案
wpautop()功能為您的內容添加了<p> 和<br> 標籤,以保留換行符。如果您想自己添加這些標籤,那麼您可以將應用此功能的過濾器刪除到帖子內容:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
如果您想保留自動 paragaraph 創建 (插入<p> 標籤),並刪除其他<br> 標籤,您可以使用此代碼:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
function wpse_wpautop_nobr( $content ) {
return wpautop( $content, false );
}
add_filter( 'the_content', 'wpse_wpautop_nobr' );
add_filter( 'the_excerpt', 'wpse_wpautop_nobr' );
如果您不確定該代碼放在哪裏,請參閲 this link 。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。